如何解决VBA OnTime字符限制?

我需要在4秒后运行一个VBA子例程。 子例程接受一个string参数。 我遇到的问题是,我需要传递的string似乎太长,它是错误的。 尝试运行这个代码:

Sub DoTest() Application.OnTime Now + TimeSerial(0, 0, 4), "'PrintStr ""aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa""'" End Sub Sub PrintStr(str As String) Debug.Print str End Sub 

DoTest()运行没有错误。 现在再给a的string添加一个“a”,并再次运行DoTest()。 你会得到“这个macros…找不到”的错误。

我怎样才能解决这个问题,或者使用OnTime或者另外一个解决scheme来让我调用一个接受X参数的子程序? 我正在使用Excel 2003。

尝试这样的事情:

 Dim str As String Sub DoTest() str = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" Application.OnTime Now + TimeSerial(0, 0, 4), "PrintStr" End Sub Sub PrintStr() Debug.Print str End Sub