Vba:如何将工作表另存为 csv 文件(带有示例)
您可以在 VBA 中使用以下语法将工作簿的每个工作表保存到 CSV 文件:
Sub SaveCSV()
Dim Ws As Worksheet
Dim SaveDir As String
Dim CurrentWorkbook As String
Dim CurrentFormat As Long
CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "
'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True
End Sub
此特定宏会将当前活动工作簿的每个工作表保存到 CSV 文件中。
CSV 文件将保存在SaveDir变量中指定的路径中。
注意: Application.DisplayAlerts=False行告诉 VBA 在保存文件时暂时禁用 Excel 中的所有显示警报。
以下示例展示了如何在实践中使用此语法。
示例:使用 VBA 将工作表另存为 CSV 文件
假设我们有一个包含两张表的 Excel 工作簿。
第一个表称为player_stats ,包含有关不同篮球运动员的统计数据:
第二个表称为team_info ,包含有关不同篮球队的信息:
假设我们要将这些工作表中的每一个保存为计算机桌面上的单独 CSV 文件。
我们可以创建以下宏来执行此操作:
Sub SaveCSV()
Dim Ws As Worksheet
Dim SaveDir As String
Dim CurrentWorkbook As String
Dim CurrentFormat As Long
CurrentWorkbook = ThisWorkbook.FullName
CurrentFormat = ThisWorkbook.FileFormat
'specify directory to save CSV files in
SaveDir = " C:\Users\bobbi\OneDrive\Desktop\ "
'save each sheet to individual CSV file
For Each Ws In Application.ActiveWorkbook.Worksheets
Ws.SaveAs SaveDir & Ws.Name, xlCSV
Next
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
Application.DisplayAlerts = True
End Sub
执行此宏后,每个工作表都将作为 CSV 文件保存在我们的桌面上。
如果我导航到计算机桌面,我可以看到每个单独的 CSV 文件,其文件名与工作表名称匹配:
如果我使用记事本打开player_stats CSV文件,我可以看到Excel文件中的值被保存为逗号分隔值:
请注意,在此示例中,我们能够将两张工作表作为单独的 CSV 文件保存到我们的工作簿中,但同一宏将适用于任意数量的工作表。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务: