如何解决VBA OnTime字符限制?

时间:2011-10-28 07:32:31

标签: excel excel-vba vba

我需要在4秒后运行VBA子程序。子例程采用一个字符串参数。我遇到的问题是我需要传递的字符串看起来太长而且错误了。尝试运行此代码:

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”到a的字符串并再次运行DoTest()。您将收到“此宏...无法找到”错误。

我如何使用OnTime或其他解决方案来解决这个问题,这个解决方案允许我调用接受参数X秒后的参数的子程序?我正在使用Excel 2003。

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

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