使用VBA在列中保存包含数据的csv

时间:2016-02-25 11:18:01

标签: excel vba excel-vba csv

我在Excel-VBA中制作了一个宏:

  • 创建新工作表
  • 将数据写入5列
  • 将文件另存为CSV
  • 关闭文件

问题是,一旦文件关闭,数据就不再以列分隔。但它的逗号分隔并连接成一列。

奇怪的是,手动关闭最近创建的csv文件(而不是在VBA中关闭它)解决了这个问题,因为再次打开它时数据仍然在列中。

我在这里尝试做的是在VBA中保存/关闭文件,并将数据保存在列中。

这是一个例子:

Sub test()
    Workbooks.Add
    Cells(1, 1) = "a"
    Cells(1, 2) = "a"
    Cells(1, 3) = "a"
    ActiveWorkbook.SaveAs filename:= "C:\Users\user\Desktop\File.csv", FileFormat:=xlCSV
End Sub

然后关闭" File.csv"手动并再次打开它:

enter image description here

第二个例子:

Sub test()
    Workbooks.Add
    Cells(1, 1) = "a"
    Cells(1, 2) = "a"
    Cells(1, 3) = "a"
    ActiveWorkbook.SaveAs filename:= "C:\Users\user\Desktop\File.csv", FileFormat:=xlCSV
    ActiveWorkbook.Close
End Sub

此处自动关闭文件。以下是手动打开时的结果:

enter image description here

1 个答案:

答案 0 :(得分:3)

这对我有用:

Sub test()

    Workbooks.Add
    Cells(1, 1) = "a"
    Cells(1, 2) = "a"
    Cells(1, 3) = "a"

    With ActiveWorkbook
        .SaveAs Filename:="C:\Users\user\Desktop\File.csv", FileFormat:=xlCSV, Local:=True
        .Close False
    End With

End Sub