我正在寻找运行Application.OnTime并指定工作簿和一些参数。我可以让他们自己工作,但不能一起工作。
例如,如果“MacroToBeCalled”子例程与我设置Application.OnTime的工作簿相同,则以下代码有效。它使用单引号,如here所述。
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
实际被触发时,它正在运行{{ 1}}在工作簿A而不是B中,即使在工作簿B中设置了MacroToBeCalled
。如果删除参数并指定工作簿,则它在工作簿B中有效。
答案 0 :(得分:1)
使用的正确格式为:
Application.OnTime Now(), "'Test File.xlsm'!'MacroToBeCalled ""String To Send""'"
之前的部分!标记和后面的部分应该有单引号。