Excel VBA – 获取运行时错误1004 – 无法访问文件

我有一个非常简单的macros。 我基本上每月都会为一个我为活跃成员自愿的俱乐部获得数据转储。 我从那个文件创build几个单独的xls工作簿,然后我需要转换为.csv

以下是代码示例:

' convert Poker Workbooks.Open fileName:= _ "/Users/birdsdeanger/Documents/CLUB/CSV Files/Current_Month/xlsx/Poker.xlsx" ChDir _ "/Users/birdsdeanger/Documents/CLUB/CSV Files/Current_Month/csv" ActiveWorkbook.SaveAs fileName:= _ "/Users/birdsdeanger/Documents/CLUB/CSV Files/Current_Month/csv/Poker" & ".csv" _ , FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Saved = True ActiveWindow.Close ' convert Potluck Workbooks.Open fileName:= _ "/Users/birdsdeanger/Documents/CLUB/CSV Files/Current_Month/xlsx/Potluck.xlsx" ChDir _ "/Users/birdsdeanger/Documents/CLUB/CSV Files/Current_Month/csv" ActiveWorkbook.SaveAs fileName:= _ "/Users/birdsdeanger/Documents/CLUB/CSV Files/Current_Month/csv/Potluck" & ".csv" _ , FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Saved = True ActiveWindow.Close ' convert Pub_Night Workbooks.Open fileName:= _ "/Users/birdsdeanger/Documents/CLUB/CSV Files/Current_Month/xlsx/Pub_Night.xlsx" ChDir _ "/Users/birdsdeanger/Documents/CLUB/CSV Files/Current_Month/csv" ActiveWorkbook.SaveAs fileName:= _ "/Users/birdsdeanger/Documents/CLUB/CSV Files/Current_Month/csv/Pub_Night" & ".csv" _ , FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Saved = True ActiveWindow.Close 

我运行macros的这一部分,并得到以下错误:

示例错误消息

如果我现在放弃macros,并手动保存为csv文件到正确的目录,然后删除它,然后再次运行macros…macros将在正确的目录(扑克)创buildcsv和炸popup下一个保存为(potluck)。

我会用第二个文件(potluck)重复这个过程(手动保存为csv,从目录中删除文件)再次运行macros,前两个文件创build就好了,它会popup第三个(pubnight )…

任何有关正在发生的事情或我如何修复代码的build议? 我必须每月创build18个这样的文件,并且希望能够处理自动化中的错误,所以当我运行这个疯狂的事情时,我不会把头发撕掉。

我没有答案,但我会做的第一件事是从用户方面logging一个macros,将做同样的事情。 然后,我会将我的代码与从logging的macros生成的代码进行比较,以查看是否可以执行任何错误,或者是否使用了正确的函数或属性来满足需要。

我花了很多时间,通常很快发现错误。

祝你好运!

将所有图纸导出到分离的CSV文件。 相应地修改!

 Sub ExportSheetsToCSV() Dim xWs As Worksheet Dim xCSVFile As String For Each xWs In Application.ActiveWorkbook.Worksheets xWs.Copy xTextFile = CurDir & "\" & xWs.Name & ".csv" Application.ActiveWorkbook.SaveAs Filename: = xCSVFile, FileFormat: = xlCSV Application.ActiveWorkbook.Saved = True Application.ActiveWorkbook.Close Next End Sub