从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):
违规似乎是我无法从我的VBA代码中受到影响,但它不会影响我需要的.exe部分,以便进行我的代码所需的计算。我希望通过直接从VBA代码中解决问题,而不是深入研究内存访问违反外部软件的世界。
如果我在该错误消息上单击“确定”,就我的代码而言,一切都很完美。我不需要.exe来保存导致错误的文件,我已经拥有了我需要的数据。
是否可以从excel-VBA代码中删除外部软件的错误窗口?
注意:错误来自.exe程序,而不是来自excel本身。
答案 0 :(得分:2)
这是sendkeys的一个简单示例,它将打开记事本,然后发送回车键:
Sub SendEnterToNotepad()
With Application
Shell "Notepad.exe", 3
SendKeys "{ENTER}"
End With
End Sub