打开/保存文件时出现间歇性Excel错误

时间:2017-11-20 21:18:21

标签: excel vba excel-vba runtime-error temporary-files

在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中发生了错误,但我们认为这可能是一个与服务器相关的问题,基于我们已经阅读过的其他论坛讨论,其他人遇到了类似的问题。

现阶段欢迎任何想法,因为我们未能成功解决此问题。

1 个答案:

答案 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