Application.OnTime的多个variables参数

我正在为Excel 2010的数据采集前端工作。我无法找出将多个局部variablesparameter passing给Application.OnTime的语法。

http://markrowlinson.co.uk/articles.php?id=10为单个variables提供了一个很好的例子作为参数,但是关于如何把这个推断到多个variables的解释并不清楚。

有没有人有一个传递多个局部variables参数时正确的"'字符嵌套的简要解释?

编辑:代码示例将如下所示: Application.OnTime Now + TimeSerial(0, 0, 5), "'runScheduledReport """ & iArg1 & "","" & iArg2 & "" "" & iArg3 & "" ""'"我明白我们在string中使用双引号作为转义字符,但是不能真正弄清楚被传递的string的顺序。

你必须考虑以下限制:

  • 你想调用的macros必须驻留在一个模块中。 当你想从另一个工作簿中调用它时,它必须是公开的。
  • 你不能使用括号来调用macros,就像你用一个函数或者一个带有最可能参数的子函数一样。 当使用括号时,Excel会抱怨macros不存在
  • 我没有尝试一个函数,但无论如何没有人可以使用返回值,所以定义你的方法作为一个子。
  • 你必须使用aposthophs封装macros名称
  • 你必须使用引号来封装string和date值,或者用$(34)(提醒我旧时代),或者加双引号
  • 你可以在没有引号的情况下传递整数,我没有尝试双打
  • 用逗号分隔参数
  • 参数的顺序必须与方法中参数的顺序相匹配

查找附上的代码:

 Option Explicit Sub Test() Dim strTest1 As String Dim strTest2 As String strTest1 = "This is test1" strTest2 = "This is test2" Application.OnTime Now + TimeSerial(0, 0, 1), "'CallMeOnTime """ & strTest1 & """,""" & strTest2 & "'" Application.OnTime Now + TimeSerial(0, 0, 1), "'CallMeOnTime " & Chr$(34) & "Test" & Chr$(34) & "," & Chr$(34) & "Test" & Chr$(34) & "'" Application.OnTime Now + TimeSerial(0, 0, 1), "'CallMeOnTime2'" End Sub Public Sub CallMeOnTime(strTest1 As String, strTest2 As String) MsgBox ("test1: " & strTest1 & " test2:" & strTest2) End Sub Public Sub CallMeOnTime2() MsgBox ("CallMeOnTime2") End Sub 

只是想添加一个我发现有帮助的例子,参考MrExcel的这篇文章 。

具有不同types的多个参数的Application.OnTime(String和Integer)

 Dim testName As String Dim counter As Integer ... ' String then Integer argument Application.OnTime Now + TimeValue("00:00:02"), "'TestSub """ & testName & """, " & counter & " '" ' Integer then String argument Application.OnTime Now + TimeValue("00:00:02"), "'SubTest " & counter & ", """ & testName & """ '"