尝试通过Excel VBA宏将Excel工作表另存为CSV时出错

时间:2019-03-15 17:51:57

标签: excel vba csv excel-2010

在Windows 7上使用Excel2010。我有一个VBA宏,可将excel工作簿(.xlsm)的第一个工作表保存到CSV文件中。在过去,这主要起作用。最近,每张图片都显示错误消息,其状态为“运行时错误'1004':Microsoft Excel无法打开或保存更多文档,因为没有足够的可用内存或磁盘空间。”

几件事:

  • 我的Google搜索中常见的建议解决方案是将文件的位置设置为“受信任的位置”。这没用。
  • 我有足够的磁盘空间。那不是问题。
  • 我不确定“可用内存”的确切含义,但是如果它以任何方式引用Windows Task Manager中列出的“物理内存”数字,则该数字为75%。最终的CSV文件本身通常约为1,500KB。
  • 我始终可以手动将工作表另存为CSV,而不会遇到任何错误消息,但是当我通过此VBA宏执行此操作时,会收到错误消息。

Picture of error message

我的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

1 个答案:

答案 0 :(得分:0)

尝试一下,您不必使用CopyActivate。如果您的代码在您要另存为工作簿的工作簿中,则可以使用ThisWorkbook。感谢@Variatus来确定是否需要路径。

ThisWorkbook.Sheets("Sheet1").SaveAs ThisWorkbook.Path & "/" & "dummyfilename" & ".csv", FileFormat:=6