2011-10-28 91 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