【发布时间】:2019-08-06 20:47:53
【问题描述】:
在 Windows 7 上使用 Excel 2010。我有一个 VBA 宏,可将 Excel 工作簿 (.xlsm) 的第一个工作表保存到 CSV 文件中。这在过去大多是有效的。最近,我收到下图的错误消息,其中指出“运行时错误'1004':Microsoft Excel 无法打开或保存任何更多文档,因为没有足够的可用内存或磁盘空间。”
有几件事:
- 我的 Google 搜索建议的一个常见解决方案是将文件的位置设置为受信任的位置。这不起作用。
- 我有足够的磁盘空间。这不是问题。
- 我不确定“可用内存”的确切含义,但如果它以任何方式指的是 Windows 任务管理器中列出的物理内存数字,那么该数字就是 75%。最终的 CSV 文件本身往往约为 1,500KB。
- 我始终可以手动将此工作表另存为 CSV,而不会遇到任何错误消息,但是当我通过此 VBA 宏执行此操作时,我会收到错误消息。
我的 excel VBA 另存为 CSV 宏:
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
【问题讨论】:
-
尝试用
ThisWorkbook.Sheets("Sheet1").Activate替换ThisWorkbook.Sheets("Sheet1").Copy -
我怀疑该错误是由于您的 SaveAs 指令中缺少路径引起的。为文件名添加路径,看看错误是否仍然存在。
-
澄清一下,我的 SaveAs 指令中有一条路径。我只是在使用一个假人,因为我觉得这里不需要使用实际路径,但我现在明白这有多么误导。
-
您将文件保存在哪个驱动器上? AppData 在哪个驱动器上?如果这些不同,您是否检查了两者的可用空间?
标签: excel vba csv excel-2010