将AHK参数中的值传递给VBA脚本中的子例程

问题描述 投票:1回答:1

我有一个.AHK脚本来打开Excel工作表并按下键盘快捷键来执行宏。但是,我还想传递一个从命令行接收的参数(文件的路径),以某种方式作为参数传递给宏。我怎样才能做到这一点?

几点重点,我被迫打开excel表使用:

Run, file.xlsm

我不能使用创建excel对象的替代方法,然后使用该对象打开工作簿,然后使用相同的对象调用宏。

我的子程序如下:

Sub Test(String path)
    Call Application.Run("EEC.SetTargetProject", path)  
End Sub

我注意到,如果我的子程序有参数,我就不能指定一个快捷方式来调用子程序。因此,如果我删除参数以便子例程test不带参数,那么我可以通过转到宏>选项>快捷键为其分配键盘快捷键。是否有其他方法可以在不使用Excel对象的情况下从AHK脚本调用宏?谢谢!

excel vba autohotkey
1个回答
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输入框,输入路径并按下回车键。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.