Первый запуск формы всегда проходит удачно, а при втором - вылетает ошибка (причем у меня - License for this component not found, а у других пользователей - ошибка 429)
Форма - стандартная, никаких лишних или нестандартных компонентов на ней нет.
PS: Если перед повторным запуском из окна Immediate выполнить команду END - повторный запуск происходит успешно. Значит, при закрытии формы крестиком что-то остаётся висеть в памяти. Вопрос - что именно?
Пробовал на событие нажатия крестика вешать команду END - не помогает:
Private Sub UserForm_Deactivate(): End: End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer): End: End Sub
Если дождаться появление "Excel, Word, CorelDRAW" (остальное не прочесть - локаль нерусская :) ), то ошибки при повторном запуске нет. Может Do-Loop или While-Wend виноваты?
Sub ShowText(ByVal StopDuration As Double, ByVal Pause As Double, ByVal txt As String) If Not CloseForm Then For i = 1 To Len(txt) Me.Label_creeping_line.Caption = Left(txt, i) t = Timer: While Timer < t + Pause: DoEvents: Wend Next i t = Timer: While Timer < t + StopDuration: DoEvents: Wend Me.Label_creeping_line.Caption = "" End If End Sub
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
{quote}{login=Hugo}{date=04.08.2011 05:17}{thema=}{post}Интересный эффект - вроде помогает, но если подождать пяток секунд и нажать - та же ошибка :({/post}{/quote}не удивительно) Ибо я не досмотрел и по сути, цикл продолжал выполняться.
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
{quote}{login=Hugo}{date=04.08.2011 05:58}{thema=}{post}Работает. Только я не понял - почему при запуске работает, а из редактора ругается?{/post}{/quote}Можно поподробней?) Прям поэтапно, как сделать так, чтобы "ругалась при запуске из редактора"?
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
Вроде вделал вариант, который не вылетает. (но особо не тестировал)
Исправил кое-что - добавил несколько DoEvents, заменил END на EXIT SUB, да и проверок на запущенность формы добавил. Теперь вроде не появляется ошибка - но причина её появления мне так и не стала ясна.
{quote}{login=nerv}{date=04.08.2011 06:54}{thema=}{post}{quote}{login=Hugo}{date=04.08.2011 05:58}{thema=}{post}Работает. Только я не понял - почему при запуске работает, а из редактора ругается?{/post}{/quote}Можно поподробней?) Прям поэтапно, как сделать так, чтобы "ругалась при запуске из редактора"?{/post}{/quote} Да вот пытался на работе под 2003 с нерусской локалью запустить из редактора по Play и по F8 - не шло. Типа ошибка компиляции или что-то вроде того. Сейчас дома файл скачал - всё отлично работает, как угодно.
к моемы выше изложенному посту еще можно добавить End ( как причину возникновения ошибки)
Что бы понять причину возникновения ошибки, сделайте следующее:
1. Скачайте файл : ) 2. После открытия книги у вас процедура автоматически запускает форму. Закройте форму. Откройте редактор VBE. Установите точку останов в этой строке:
Private Sub UserForm_Terminate(): CloseForm = True: Unload Me: End Sub
3. Перейдите на лист. Нажмите кнопку. Закройте форму. Далее пошагово F8.
И вы увидите, как у вас КОРРЕКТНО завершается процедура одна, затем другая.
Чтобы понять причину возникновения ошибки, замените: If CloseForm Then Exit Sub на If CloseForm Then End и проделайте все вышеизложенное.
p.s.: я не собираюсь выставлять из себя умника и не мне Вас учить (скорее наоборот : ) ), но это (причина ошибки) мое мнение.