VBA不使用我的windows区域设置
我正在尝试自动化一些我必须在excel下执行的操作。 使用录制选项后(即使我对VBA有一些了解),宏是下一个:VBA不使用我的windows区域设置,vba,excel,Vba,Excel,我正在尝试自动化一些我必须在excel下执行的操作。 使用录制选项后(即使我对VBA有一些了解),宏是下一个: Sub MacroPOI() Selection.SpecialCells(xlCellTypeBlanks).Select Selection.EntireRow.Delete Rows("1:4").Select Selection.Delete Shift:=xlUp Columns("A:A").Select Selection
Sub MacroPOI()
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
Rows("1:4").Select
Selection.Delete Shift:=xlUp
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 2), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs Filename:= _
ActiveWorkbook.path + "\" + Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) + ".csv", _
FileFormat:=xlCSVMSDOS, CreateBackup:=False
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
问题是,当我自己做时(录制时),结果文件使用分号作为分隔符(我的区域设置设置为France),但当我执行VBA代码时,结果文件使用逗号作为分隔符
我希望用分号…没关系,我在写问题的时候找到了答案 这个问题是因为我在saveAs中没有使用Local,而且在这之后我又在保存(这绕过了saveAs中的Local) 因此,最后的代码只是将
Local:=True
添加到SaveAs
:
ActiveWorkbook.SaveAs Filename:= _
ActiveWorkbook.path+"\"+Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)+".csv", _
FileFormat:=xlCSVMSDOS, CreateBackup:=False, Local:=True
没关系,我在写问题的时候找到了答案 这个问题是因为我在saveAs中没有使用Local,而且在这之后我又在保存(这绕过了saveAs中的Local) 因此,最后的代码只是将
Local:=True
添加到SaveAs
:
ActiveWorkbook.SaveAs Filename:= _
ActiveWorkbook.path+"\"+Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4)+".csv", _
FileFormat:=xlCSVMSDOS, CreateBackup:=False, Local:=True
因为你已经回答了自己的问题,而且你似乎对此很满意。。也许值得接受你自己的答案,只是为了结束这场争论query@Zac即使使用网站上的问答方式,我不能在两天之前接受答案……我想你需要24或48小时才能接受你自己的解决方案作为答案,但这值得重新访问该线程。@Jeeped它是这样的,如果有人想在线程上添加内容?是的,我想。我认为这条规则是阻止任何人自我回答并立即获得布朗尼分数。因为你已经回答了自己的问题,而且你似乎对此很满意。。也许值得接受你自己的答案,只是为了结束这场争论query@Zac即使使用网站上的问答方式,我不能在两天之前接受答案……我想你需要24或48小时才能接受你自己的解决方案作为答案,但这值得重新访问该线程。@Jeeped它是这样的,如果有人想在线程上添加内容?是的,我想。我认为这条规则是阻止任何人自我回答并立即获得分数。