Как обойти ограничения символов VBA OnTime? - PullRequest
1 голос
/ 28 октября 2011

Мне нужно запустить подпрограмму VBA через 4 секунды. Подпрограмма принимает один строковый параметр. У меня проблема в том, что строка, которую мне нужно передать, кажется слишком длинной и выдает ошибку. Попробуйте запустить этот код:

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 Ответ

2 голосов
/ 28 октября 2011

Попробуйте что-то вроде этого:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...