我有一个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人员正在研究它......
答案 0 :(得分:0)
由于最近的更新,许多Excel VBA应用程序正在停止工作。它现在区分大小写。检查实际路径/文件名的大小写。
答案 1 :(得分:0)
您是否有机会使用赛门铁克防病毒软件?我有一个完全相同的问题,在尝试执行.bat文件时意外关闭Excel,这是由于赛门铁克终止了这个过程。