我有一个与这篇文章非常相似的问题:将单个 Excel 工作表另存为 CSV https://stackoverflow.com/questions/7331624/save-individual-excel-sheets-as-csv/7332313#7332313
我的问题不同之处在于我只需要保存一张纸
这是那个帖子的答案
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.SaveAs "C:\docs\" & ws.Name & ".csv", xlCSV
Next
此代码将每个工作表保存到特定文件夹,并将文件命名为与工作表相同的名称。我看到的 2 个问题:
1-您当前正在处理的工作簿将成为代码保存的最后一个工作表。如果您想继续处理工作簿,则必须打开原始文件。如果打开一个新工作簿并与正在处理的工作簿分开保存,效果会更好。
2-它保存每个工作表。我只需要保存一个特定的工作表,即Sheet2
我找到了其他代码,但我对 VBA 非常陌生,只知道如何创建宏,将代码复制并粘贴到其中。当我运行代码时出现错误。
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
是带有 csv 路径的文件名。就如此容易。
现在看这段代码
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
and ActiveWorkbook
。当您复制工作表时,会创建一个新工作簿并变为活动状态,因此要关闭我们使用的ActiveWorkbook
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)