VBA 将 .XLSX 文件转换为批量 .CSV 文件时出现问题
Issue with VBA converting .XLSX file to bulk .CSV
我每月收到一份 excel 文件,其中包含多个 sheet。每个 sheet 都需要拆分成 .CSV 文件才能上传到我们的系统进行阅读,并且考虑到单个工作簿可能包含 10 到 15 页以上,手工完成是一件苦差事。
目前,我正在使用这个 VBA 脚本来完成工作:
Sub Splitbook()
'Updateby20140612
Dim xPath As String
xPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
xWs.Copy
Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".csv"
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
它“有效”。问题?当您尝试打开生成的 csv 时,windows 会抱怨扩展名不匹配并警告损坏。如果你点击对话框,它无论如何都会打开,但目标系统不能这样做。因此,我只能弄清楚缺少什么或返回手动解析。有帮助吗?
我创建了一个版本,将您的代码与其他答案的相关部分相结合。打开的工作簿将依次使用每个工作表的名称。因此,在 运行 此代码之前保存您的工作簿非常重要。最后打开的版本会有所有选项卡,但它们不在保存的同名 CSV 文件中。
如果你想在最后再次保存回原来的名称和格式,我认为其他一些答案也可以帮助解决这个问题。
我删除了工作表复制命令并注释掉了 Application.ActiveWorkbook.Close False
行,因为我不确定他们在做什么。
Sub Splitbook()
Dim xPath As String
xPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
xWs.SaveAs Filename:=xPath & "\" & xWs.Name & ".csv", FileFormat:=xlCSV
'Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
我每月收到一份 excel 文件,其中包含多个 sheet。每个 sheet 都需要拆分成 .CSV 文件才能上传到我们的系统进行阅读,并且考虑到单个工作簿可能包含 10 到 15 页以上,手工完成是一件苦差事。
目前,我正在使用这个 VBA 脚本来完成工作:
Sub Splitbook()
'Updateby20140612
Dim xPath As String
xPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
xWs.Copy
Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".csv"
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
它“有效”。问题?当您尝试打开生成的 csv 时,windows 会抱怨扩展名不匹配并警告损坏。如果你点击对话框,它无论如何都会打开,但目标系统不能这样做。因此,我只能弄清楚缺少什么或返回手动解析。有帮助吗?
我创建了一个版本,将您的代码与其他答案的相关部分相结合。打开的工作簿将依次使用每个工作表的名称。因此,在 运行 此代码之前保存您的工作簿非常重要。最后打开的版本会有所有选项卡,但它们不在保存的同名 CSV 文件中。
如果你想在最后再次保存回原来的名称和格式,我认为其他一些答案也可以帮助解决这个问题。
我删除了工作表复制命令并注释掉了 Application.ActiveWorkbook.Close False
行,因为我不确定他们在做什么。
Sub Splitbook()
Dim xPath As String
xPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
xWs.SaveAs Filename:=xPath & "\" & xWs.Name & ".csv", FileFormat:=xlCSV
'Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub