将特定单张保存为.csv

我有一个非常类似的问题作为这篇文章: 保存单独的Excel工作表为CSV

我的问题不同,我只需要保存一张表。这是该post的答案

Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.SaveAs "C:\docs\" & ws.Name & ".csv", xlCSV Next 

此代码将每个工作表保存到特定的文件夹,并将该文件命名为与工作表相同。 我看到2个问题:

1-您正在编写的工作簿成为代码保存的最后一张工作表。 如果您想继续使用工作簿,则必须打开原始文件。 如果一本新的工作手册与正在进行的工作手册分开保存,那将会更好。

2-保存每个工作表。 我只需要保存一个特定的工作表,即Sheet2

我发现这个其他代码,但我是VBA的新手,只知道如何创build一个macros,复制和粘贴代码。 我运行代码时出现错误。

 Sub test() Application.DisplayAlerts = False ThisWorkbook.Sheets(strSourceSheet).Copy ActiveWorkbook.SaveAs Filename:=strFullname, FileFormat:=xlCSV, CreateBackup:=True ActiveWorkbook.Close Application.DisplayAlerts = True End Sub 

希望我能朝着正确的方向前进。 谢谢!

  1. strSourceSheet是具有您要导出的工作表的名称/编号的工作表
  2. strFullname是具有csvpath的文件名。 就如此容易。

现在看到这个代码

 ThisWorkbook.Sheets(strSourceSheet).Copy ActiveWorkbook.SaveAs Filename:=strFullname, _ FileFormat:=xlCSV, _ CreateBackup:=True ActiveWorkbook.Close 

比方说,我想复制Sheet2然后我会写它

 Dim strSourceSheet As String Dim strFullname As String '~~> Change the below two lines as per your requirements strSourceSheet = "Sheet2" strFullname = "C:\Temp\MyCsv.Csv" ThisWorkbook.Sheets(strSourceSheet).Copy ActiveWorkbook.SaveAs Filename:=strFullname, _ FileFormat:=xlCSV, _ CreateBackup:=True ActiveWorkbook.Close 

你有没有注意到我们如何在ThisWorkbookActiveWorkbook之间切换。 当您复制工作表时,将创build一个新工作簿并变为活动状态,因此要closures我们使用的ActiveWorkbook

希望这可以帮助。