将特定单张保存为.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
希望我能朝着正确的方向前进。 谢谢!
-
strSourceSheet
是具有您要导出的工作表的名称/编号的工作表 -
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
你有没有注意到我们如何在ThisWorkbook
和ActiveWorkbook
之间切换。 当您复制工作表时,将创build一个新工作簿并变为活动状态,因此要closures我们使用的ActiveWorkbook
希望这可以帮助。