VBA应用程序打开时间指定工作簿和宏名称并发送参数



我想运行Application.OnTime并指定工作簿和一些参数。我可以让他们自己工作,但不能一起工作。

例如,如果"MacroToBeCalled"子例程位于我设置Application.OnTime的同一工作簿中,则以下代码有效。它使用单引号,如下所述。

Application.OnTime Now(), "'MacroToBeCalled ""String To Send""'"

此外,如果"MacroToBeCalled"子例程位于名为"Test File.xlsm"的工作簿中,则以下代码有效,这与我运行这行代码的位置不同。

Application.OnTime Now(), "'Test File.xlsm'!MacroToBeCalled"

但是,我找不到发送参数的方法。我正在寻找类似以下的东西,尽管这不起作用。

Application.OnTime Now(), "''Test File.xlsm'!MacroToBeCalled ""String To Send""'"

如果可能的话,我需要提供什么样的字符串格式才能工作?

如果你需要更多的细节,我有两个工作簿,一个叫做A,一个叫B。A和B都包含一个名为MacroToBeCalled的子例程。我正在使用工作簿a中的一个按钮,该按钮使用Application.Run来运行工作簿B中名为SetOnTimeToRunMacro的宏。我想要的是工作簿B中的SetOnTimeToRunMacro子例程调用Application.OnTime来运行工作簿B的MacroToBeCalled。然而,当实际触发OnTime时,它在工作簿A中运行MacroToBeCalled,而不是在工作簿B中运行,即使在工作簿B设置了OnTime

要使用的正确格式是:

Application.OnTime Now(), "'Test File.xlsm'!'MacroToBeCalled ""String To Send""'"

之前的部分!标记和后面的部分应该有单引号。

相关内容

最新更新