excel - 执行 AutoIt 并等待完成

标签 excel vba shell autoit

我需要实现一个在 autoit 之后运行的宏,并完成运行程序,它运行宏的其余部分。 我尝试了 Shellandwait(),但没有找到解释它的文档。

我在论坛上获取了其他代码示例并得到了这个:

Sub autoit()
Dim hProcess As Long
Dim xPath As String
Dim wsh As Object
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1

Set wsh = CreateObject("WScript.Shell")

xPath = Application.ActiveWorkbook.Path

hProcess = wsh.Run("D:\Program Files\autoit-v3\install\AutoIt3_x64.exe " _
& xPath & "\leandro.au3", 0, True)

Workbooks.Open (xPath & "\Mudança " & Format(Date, "dd_mm_yyyy") & ".csv")

End Sub

当我运行时,它返回此错误:

"Run-time error '-2147024894 (80070002)': Method 'Run' of object 'IWshShell3' failed"

我不知道这意味着什么,也不知道解决方案。

最佳答案

如果 xPath 中有任何空格,您需要将表达式用引号引起来。

尝试这样的事情:

xPath = ActiveWorkbook.Path

With CreateObject("WSCript.Shell")
    .Exec "CMD /C START /WAIT ""D:\Program Files\autoit-v3\install\AutoIt3_x64.exe"" """ & xPath & "\leandro.au3"""
End With

关于excel - 执行 AutoIt 并等待完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33808699/

相关文章:

excel - 当单元格结果按公式更改时运行宏

linux - 通过交互式 shell 与脚本查找名称中带有星号 (*) 的文件

python - 如何通过shell脚本激活python虚拟环境

sql - 如何使用 VBA 创建空白的 MS Access 数据库?

vba - 以编程方式将参数传递到 Access 报告中

bash - 判断shell脚本是否被执行 "sourcing"it

excel - 数据透视表返回范围内的第一个值

Python 3.0导入Excel文件到Access文件

c# - EPPlus 公式未运行

VBA CountIf 问题