如何应对“保存”对话框保持打开

时间:2016-12-12 22:09:30

标签: excel vba

在我的VBA中,我有一个非常简单的代码来保存工作簿;

wb.SaveAs sTmp, FileFormat:=51

其中sTmp是完整的有效文件路径(最后包括.xlsx),而fileformat 51是.xlsx,新工作簿存储到网络位置(这可能是问题的一部分,但我似乎无法找到与此相关的任何内容)

现在这个代码在10次中平稳运行9次,但有时“保存”对话框仍保持打开状态,即使文件已经保存,导致VBA代码挂起在SaveAs行上。如果我单击取消按钮,代码将继续,我可以毫无问题地打开文件。

任何人都有建议如何应对这类问题或知道导致此问题的原因?如果一行代码执行时间太长,是否有超时功能? (谷歌搜索超时返回用户不活动问题或SQL相关问题)

更新;

生成字符串不是问题,sTmp是经过验证的字符串。如果字符串(或任何其他输入)将是错误的或指定的路径/文件名将是错​​误的,不存在,必须被替换或包含非法字符vba将抛出错误(相信我,我到过那里)。

澄清;执行此行时,实际上保存了工作簿。 Excel会弹出一个对话框“使用进度条将工作簿保存到(路径)”。这个弹出窗口不会消失,代码挂在上面一行,好像在等待握手一样。当进度条被杀死时(即按下取消按钮),代码恢复正常。

提前致谢, 尼克

1 个答案:

答案 0 :(得分:1)

我有一个好处,就是在对代码进行少量修改后就会显示此错误。我之前没有这个问题。奇怪的是,它使用了kill功能。替换以下代码后,该问题不再发生。

使用新的FileSystemObject 如果.FileExists(yourFilePath)然后 .DeleteFile yourFilepath 万一 结尾为