试图通过Excel VBA宏将Excel工作表另存为CSV时出错
在Windows7上使用Excel2010。我有一个VBA宏,它将excel工作簿(.xlsm)的第一个工作表保存到CSV文件中。这在过去基本上起了作用。最近,我从下图中收到错误消息,状态为“运行时错误'1004”:Microsoft Excel无法打开或保存更多文档,因为没有足够的可用内存或磁盘空间 所以有几件事:试图通过Excel VBA宏将Excel工作表另存为CSV时出错,excel,vba,csv,excel-2010,Excel,Vba,Csv,Excel 2010,在Windows7上使用Excel2010。我有一个VBA宏,它将excel工作簿(.xlsm)的第一个工作表保存到CSV文件中。这在过去基本上起了作用。最近,我从下图中收到错误消息,状态为“运行时错误'1004”:Microsoft Excel无法打开或保存更多文档,因为没有足够的可用内存或磁盘空间 所以有几件事: 从我的谷歌搜索中,一个常见的建议解决方案是将文件的位置设置为可信位置。这不起作用 我有足够的磁盘空间。这不可能是问题所在 我不确定“可用内存”到底是什么意思,但如果它以任何方式指
- 从我的谷歌搜索中,一个常见的建议解决方案是将文件的位置设置为可信位置。这不起作用
- 我有足够的磁盘空间。这不可能是问题所在
- 我不确定“可用内存”到底是什么意思,但如果它以任何方式指的是Windows任务管理器中列出的物理内存数字,那么这个数字是75%。最终的CSV文件本身往往约为1500KB
- 我始终能够手动将此工作表保存为CSV,而不会遇到任何错误消息,但通过此VBA宏执行此操作时,会收到错误消息
Sub saveAsCSV()
Application.DisplayAlerts = False
ThisWorkbook.Sheets("Sheet1").Copy
ActiveWorkbook.SaveAs Filename:="dummyfilename.csv", FileFormat:=xlCSV, CreateBackup:=True
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
试试这个,你不必使用
Copy
或Activate
。如果您的代码位于要另存为工作簿的工作簿中,则可以使用此工作簿
。@Variatus发现需要一条路径,值得称赞
ThisWorkbook.Sheets("Sheet1").SaveAs ThisWorkbook.Path & "/" & "dummyfilename" & ".csv", FileFormat:=6
尝试替换
此工作簿.Sheets(“Sheet1”)。用此工作簿.Sheets(“Sheet1”)复制
。激活
我怀疑此错误是由于SaveAs指令中缺少路径造成的。为文件名添加一个路径,然后查看错误是否仍然存在。为了澄清,我的SaveAs指令中确实有一个路径。我只是使用了一个虚拟的,因为我觉得没有必要在这里使用实际的路径,但我现在明白了这有多误导。你把文件保存在哪个驱动器上?AppData位于哪个驱动器上?如果两者不同,您是否检查了两者的可用空间?