如何从VBA创建单独的CSV文件?

BuZ*_*uZz 11 csv excel vba excel-vba

我需要输出一些结果作为.csv文件,稍后由另一个进程解析.为了产生这些结果,我有一个庞大的工作簿,其中包含我需要的所有宏和函数.

  1. 是否可以"创建"单独的.csv文件VBA
  2. 是否可以使用VBA功能写入其中,而不是仅仅以"原始文本"方式编写?

谢谢 :)

Ton*_*ore 24

这是你想要的吗?

Option Explicit
Sub WriteFile()

  Dim ColNum As Integer
  Dim Line As String
  Dim LineValues() As Variant
  Dim OutputFileNum As Integer
  Dim PathName As String
  Dim RowNum As Integer
  Dim SheetValues() As Variant

  PathName = Application.ActiveWorkbook.Path
  OutputFileNum = FreeFile

  Open PathName & "\Test.csv" For Output Lock Write As #OutputFileNum

  Print #OutputFileNum, "Field1" & "," & "Field2"

  SheetValues = Sheets("Sheet1").Range("A1:H9").Value
  ReDim LineValues(1 To 8)

  For RowNum = 1 To 9
    For ColNum = 1 To 8
      LineValues(ColNum) = SheetValues(RowNum, ColNum)
    Next
    Line = Join(LineValues, ",")
    Print #OutputFileNum, Line
  Next

  Close OutputFileNum

End Sub
Run Code Online (Sandbox Code Playgroud)

不要忘记你需要在包含逗号的任何字段周围加上引号.


use*_*264 10

托尼的答案通常有效,但不处理你的文字包含逗号或引号的情况.您可能更喜欢使用Workbook.SaveAs方法.

如果要将Sheet1的内容另存为单独的csv文件,以下是一个示例.

Sub create_csv()
    Dim FileName As String
    Dim PathName As String
    Dim ws As Worksheet

    Set ws = ActiveWorkbook.Sheets("Sheet1")
    FileName = "filename.csv"
    PathName = Application.ActiveWorkbook.Path
    ws.Copy
    ActiveWorkbook.SaveAs FileName:=PathName & "\" & FileName, _
        FileFormat:=xlCSV, CreateBackup:=False
End Sub
Run Code Online (Sandbox Code Playgroud)

想象一下,您的Sheet1包含:

lorem ipsum

绝杀,mps"嗯"

输出csv文件将是:

LOREM,存有

"绝杀,M", "IPS", "嗯" ""