Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA不使用我的windows区域设置_Vba_Excel - Fatal编程技术网

VBA不使用我的windows区域设置

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

我正在尝试自动化一些我必须在excel下执行的操作。 使用录制选项后(即使我对VBA有一些了解),宏是下一个:

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它是这样的,如果有人想在线程上添加内容?是的,我想。我认为这条规则是阻止任何人自我回答并立即获得分数。