【问题标题】:VBA macro saves .csv file with wrong delimitersVBA 宏使用错误的分隔符保存 .csv 文件
【发布时间】:2019-10-14 23:56:34
【问题描述】:

我需要将 Excel 中的电子表格保存为 .csv 文件,其中分隔符是分号。问题是我的宏用逗号作为分隔符保存 .csv 文件

这是我使用的代码:(*s 用于覆盖目录路径)

 sub test    
   Cells.Copy
            Workbooks.Add
                Range("A1").PasteSpecial
            ActiveWorkbook.SaveAs Filename:="*****" _ 
                & ActiveWorkbook.Name & ".csv", FileFormat:=xlCSV
            ActiveWorkbook.Close SaveChanges:=False
end sub

有趣的是,当我手动保存电子表格时,分隔符是可以的。所以我尝试为此录制一个宏,这是 Excel 生成的代码:

Sub Makro2()

Cells.Select
   Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\****\Zošit17.csv", FileFormat:= _
    xlCSV, CreateBackup:=False
ActiveWindow.Close
End Sub

我什么都没改变,什么也没加,当我运行这段代码时,结果和我自己写的代码一样。

我想知道为什么会这样,因为我已将系统分隔符设置为“;”作为列表分隔符和“,”作为十进制分隔符,My Excel 也设置为使用系统分隔符。

谢谢大家帮忙解决这个问题:)

【问题讨论】:

    标签: excel vba csv


    【解决方案1】:

    How to save semi-colon delimited csv file using vba?

    你需要添加

    Local:=True
    

    所以:

    ActiveWorkbook.SaveAs Filename:="C:\Users\****\Zošit17.csv", _
                          FileFormat:= xlCSV, CreateBackup:=False, _
                          Local:=True
    

    【讨论】:

    • 我刚才试了一下,还是不行……可能是我的excel出了什么问题……
    • 当您关闭工作簿时,请确保使用SaveChanges := False - 如果保存重复,您将再次获得逗号...
    猜你喜欢
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 1970-01-01
    • 2017-02-14
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多