我有一个.AHK脚本来打开excel工作表,然后按键盘快捷键在其中执行宏。但是,我也想传递从命令行接收到的参数(文件的路径),以某种方式将其作为参数传递给宏。我该怎么办?
要点,我被迫使用以下方法打开Excel工作表:
Run, file.xlsm
我无法使用创建excel对象,然后使用该对象打开工作簿,然后使用同一对象调用宏的替代方法。
我的子程序如下:
Sub Test(String path)
Call Application.Run("EEC.SetTargetProject", path)
End Sub
我注意到,如果我有子例程的参数,则无法分配快捷方式来调用该子例程。因此,如果删除参数以使子例程test
不带任何参数,则可以通过转到“宏”>“选项”>“快捷键”来为其分配键盘快捷键。还有其他一些方法可以在不使用Excel对象的情况下从AHK脚本调用宏吗?谢谢!
答案 0 :(得分:0)
尝试以下操作:
在VBA中使用此:
Sub Test()
path = InputBox("Please enter the path", "Input path")
Call Application.Run("EEC.SetTargetProject", path)
End Sub
在AHK中使用此:
WinActivate, file.xlsm
WinWaitActive, file.xlsm
Send, ^m ;Control + M - or any other shortcut you choose in Excel to trigger the macro
WinWaitActive, Input path
Send, %path_of_the_file_received_from_commandline%
Send, {ENTER}
AHK发送在Excel中运行宏的键盘快捷键。 宏会打开自己的输入框。 AHK检测到excel输入框,输入路径并按Enter。