2011-10-28 44 views
1

我需要在4秒后运行VBA子例程。子例程接受一个字符串参数。我遇到的问题是我需要传递的字符串似乎太长而且错误。尝试运行此代码:如何解决VBA OnTime字符限制?

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中

回答

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 
+0

谢谢你的快速解决方案!另一个DOH!时刻^^ – 10basetom