Мне нужно запустить подпрограмму 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.