【问题标题】:vba shell command unexpectedly terminates excel with no error messagevba shell 命令意外终止 excel 且没有错误消息
【发布时间】:2017-12-15 16:09:49
【问题描述】:

我有一个 vba 宏,它之前使用 shell 命令启动了一个 .bat 批处理文件。

使用的shell命令形式很简单(如图):

dblResult = Shell("c:\fullPath\batchFile.bat")

突然之间,这停止了工作,excel 应用程序在这行代码处意外关闭,没有错误或警告消息,并且在批处理文件开始执行其 DOS 命令的命令窗口打开之前。

如果手动启动而不是从 excel VBA 宏启动,批处理文件仍将成功运行。

这在公司工作站上运行,所以我想知道安全更新是否对系统进行了任何更改,这些更改现在阻止了应用程序可能被视为危险的行为。

还有其他人遇到过这个问题吗?

2017-09-06 附录:

VBA shell 命令关闭/崩溃 excel 的故障是在 7 月 10 日之后首次发现的,并且发现在业务中的其他 Windows 7 机器上也很明显。

今天,一台公司的 Windows 7 笔记本电脑在之前的测试中发现有同样的问题,现在已经(神秘地)恢复到 Shell 命令再次工作。

shell 命令运行的笔记本电脑与 Excel 应用程序崩溃的桌面之间的唯一区别是 Windows 安全更新 KB3203468,它于 7 月 25 日自动安装在(工作的)笔记本电脑上,我相信这是后期首次测试笔记本电脑并发现其显示相同问题行为的时间。

目前这是解决此问题的唯一方法,并且给出的更新说明参考

“Microsoft Office 2010 32 位版本中存在一个安全漏洞,当打开恶意修改的文件时,该漏洞可能允许任意代码运行。此更新解决了该漏洞。”

这似乎在受影响的正确范围内,即用于应用程序的 VBA。

有趣的是,更新的发布日期是 7 月 11 日,与问题首次出现的时间一致,尽管它似乎负责解决笔记本电脑上的问题。

不幸的是,任何尝试在桌面上安装此更新(以管理员身份)以验证这是否解决了问题,并显示消息“此系统上没有安装此软件包影响的产品”,因此安装失败。

一个企业 IT 人员正在调查它....

【问题讨论】:

    标签: vba excel shell batch-file


    【解决方案1】:

    由于最近的更新,许多 Excel VBA 应用程序正在停止工作。它现在区分大小写。检查实际路径/文件名的大小写。

    【讨论】:

    • 感谢您的回复。
    • 我从 Windows 资源管理器中剪切并粘贴了路径名,并仔细检查了文件名和所有字符大小写匹配。如果故意在路径中插入拼写错误,则会发生正常的路径/找不到文件错误并进入中断模式,而不是使 excel 应用程序崩溃。
    • 理想情况下,如果您能够发布此代码,那么最好有代码进行测试。
    【解决方案2】:

    您是否正在使用 Symantec 防病毒软件?我遇到了完全相同的问题,即在尝试执行 .bat 文件时 Excel 会意外关闭,这是由于 Symantec 终止了该进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-09
      • 2011-01-12
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      相关资源
      最近更新 更多