在VBA中通过自动化保存/打开excel文件(并且只有excel文件)时,我们已经有一段间歇性错误了。此错误非常难以预测,并且发生在我们自动化的不同部分,但是在保存/打开各种文件时(通常使用随机临时文件)似乎会发生这种错误。我们目前正在使用Office 2010,我们的系统是最新的。
错误是:“'FILENAME.filetype'无法访问。该文件可能已损坏,位于未响应的服务器上,或者只读“。发生此错误的文件名始终不同(例如:' A1B2CDE3.tmp')。发生错误的文件最常出现在Windows保存工作簿时随机命名的临时文件。
目前,我们取消此消息框并自动恢复,因为除非在自动化后期再次出现相同的错误。
经常出现错误的示例代码:
WorkbookName.Sheets("Sheet1").Cells.NumberFormat = "General"
***WorkbookName.SaveAs FileName:=MyDirectory & "\Filename.txt", FileFormat:=xlTextWindows***
WorkbookName.Close savechanges:=False
注意:上述代码的粗体(***)部分是最常出现错误的地方。由于上例中的.txt文件不会发生错误,因为保存txt文件时Windows生成的临时文件会发生错误。
到目前为止,我们已尝试过以下方法:
•修改VBA代码(例如更改saveas文件类型和自动化以绕过错误消息)
•确保文件不是只读文件。
•在客户端计算机上重新安装办公室。
•在共享驱动器和所有文件/文件夹上正确设置了检查权限。
•删除某些客户端计算机上的最新办公室更新以进行测试。
虽然excel中发生了错误,但我们认为这可能是一个与服务器相关的问题,基于我们已经阅读过的其他论坛讨论,其他人遇到了类似的问题。
现阶段欢迎任何想法,因为我们未能成功解决此问题。
答案 0 :(得分:0)
还有其他错误信息可能会解释导致问题的原因。我假设您有错误处理,因此在错误处理程序中使用以下代码可能会提供您需要的信息(或者为我们提供更多信息来解决它):
Dim errLoop As Error
For Each errLoop In Errors
With errLoop
Debug.Print "Error #" + CStr(.Number)
Debug.Print " " + .description
Debug.Print " (Source: " + .Source + ")"
End With
Next