将数据导出到CSV-Excel VBA中

将数据导出到CSV-Excel VBA中,vba,csv,excel,Vba,Csv,Excel,假设我有一个函数,它将一些数据生成到当前工作表的单元格中,如: Cells(1, "A").Value = ... Cells(2, "A").Value = ... Cells(3, "A").Value = ... Cells(4, "A").Value = ... 我不想成为当前工作簿中的当前工作表,而是想创建一个csv文件并将其加载到给定路径 说C:\USERS\Documents\Sample.csv 我见过像这样的东西 ActiveWorkbook.SaveAs File

假设我有一个函数,它将一些数据生成到当前工作表的单元格中,如:

Cells(1, "A").Value = ...
Cells(2, "A").Value = ...
Cells(3, "A").Value = ...
Cells(4, "A").Value = ...
我不想成为当前工作簿中的当前工作表,而是想创建一个csv文件并将其加载到给定路径

C:\USERS\Documents\Sample.csv

我见过像这样的东西

     ActiveWorkbook.SaveAs Filename:= _
"c:\MyFile.csv", FileFormat:=xlCSV _
, CreateBackup:=False

但这只会将当前工作簿保存到另一个位置,但我不想在当前工作表中生成数据然后保存,而是想立即导出?无论如何我都能做到。也许制作类似于
ActiveWorkbook=//pathname
,然后激活它?

您可以使用VBA非常简单地写入CSV。 例如:

Sub WriteCSVFile()

Dim My_filenumber As Integer
Dim logSTR As String

My_filenumber = FreeFile

logSTR = logSTR & Cells(1, "A").Value & " , "
logSTR = logSTR & Cells(2, "A").Value & " , "
logSTR = logSTR & Cells(3, "A").Value & " , "
logSTR = logSTR & Cells(4, "A").Value

Open "C:\USERS\Documents\Sample.csv" For Append As #My_filenumber
    Print #My_filenumber, logSTR
Close #My_filenumber

End Sub

使用.move创建目标工作表的新书,然后将新创建的图书另存为CSV。调整路径名以调整要保存csv的目录

    Pathname = "" & Thisworkbook.path & "YourName.csv"
    Sheets("Sheet you want as CSV").Move
    ActiveWorkbook.SaveAs Filename:=PathName, _
        FileFormat:=xlCSV, CreateBackup:=False

只需将@CharlieSmith编写的代码修改为一个相当简单且更易使用的代码,即可将工作簿中的所有工作表转换为使用各自工作表名称命名的新csv文件

Sub WriteCSVFile()
Dim i As Integer
Dim WS_Count As Integer

WS_Count = ActiveWorkbook.Worksheets.Count
For i = 1 To WS_Count
Dim ws As Worksheet

Set ws = ThisWorkbook.Worksheets(i)
     PathName = "" & ThisWorkbook.Path & "\" & ws.Name & ".csv"
    ws.Copy
    ActiveWorkbook.SaveAs Filename:=PathName, _
        FileFormat:=xlCSV, CreateBackup:=False
Next i

End Sub

希望这有助于首先打开新工作簿。然后将宏存放数据保存在新工作簿中。然后将新工作簿以csv格式宏保存在您选择的文件夹中,并使用您的姓名choise。然后关闭新工作簿。@Gary的学生我正在使用
工作簿。添加
以创建另一个工作簿。我现在如何激活以确保我导入到它。。。类似于
NewWorkbook.Sheets(1)。激活
?不要只使用工作簿。添加。。。使用类似于。。。将wb设置为工作簿//设置wb=workbooks.add//with wb…此解决方案不处理数据中存在空格、换行符或逗号的情况。始终使用真正的CSV函数,而不是连接您自己的字符串。无数据。。。而不是暗示一个更好的解决方案,而不是真正添加到网站。。。请花点时间发布更好的解决方案。我总是乐于学习。也许,试着不要打倒别人,而是试着帮助他们站起来。