windows - 如何关闭从 Excel-VBA 脚本调用的 .exe 的错误消息?

标签 windows vba excel access-violation

从 vba 调用外部 .exe 文件时,如下所示:

Sub RunEXE()
Dim wsh As Object
SetCurrentDirectory "\\path\" 'Set Directory
Set wsh = VBA.CreateObject("program.exe ""\\path\argument""", WindowStyle:=1, waitonreturn:=True)

是否可以直接从 VBA 关闭错误窗口?

代码调用程序并正确运行 .exe 并生成对我有用的所有数据,但要将数据返回到我的工作表,我必须确定此窗口(因为 waitonreturn=true):

enter image description here

违规似乎是我无法从我的 VBA 代码中影响的东西,但它不会影响我需要的 .exe 部分,以便执行我的代码所需的计算。与其深入研究外部软件的内存访问冲突,我希望通过直接从 VBA 代码确定它来解决这个问题。

如果我在该错误消息上单击“确定”,就我的代码而言,一切都是完美的。我不需要 .exe 来保存导致错误的文件,而且我已经有了我需要的数据。

是否可以从我的 excel-VBA 代码中消除来自外部软件的错误窗口?

注意:错误来自 .exe 程序,而不是 excel 本身。

最佳答案

这是一个简单的 sendkeys 示例,它将打开记事本,然后发送一个回车键:

Sub SendEnterToNotepad()
    With Application
        Shell "Notepad.exe", 3
        SendKeys "{ENTER}"
    End With
End Sub

关于windows - 如何关闭从 Excel-VBA 脚本调用的 .exe 的错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47771171/

相关文章:

excel - 通过VBA在Excel列表对象/表中添加/修改/删除计算列公式

c# - 为什么将数据导出到 Excel 时日期格式会发生变化?

windows - "bind: An attempt was made to access a socket in a way forbidden by its access permissions"

无法使用 MinGW 编译 C 代码

vba - 从另一个控件的回调更新 iRibbon 控件的内容

arrays - 防止 VBA 动态数组中的额外元素

excel - 无法获取范围类的 FindNext 属性

windows - 如何在mongodb中自动轮转日志?

windows - 使用 cd 命令浏览程序 x86 和一些路径问题

vba - 在 vba 中使用 Bloomberg API