Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2013, 14:22   #1
Tigranik
Пользователь
 
Регистрация: 29.01.2013
Сообщений: 17
По умолчанию Зависает отображение в UserForm1

Добрый день, Вот мой простейший статус бар в котором отображается состояние работы макроса. Вот пример простейшего макроса, однако и он у меня работает плохо.
Код в модуле:
Код:
Sub my()
Application.ScreenUpdating = False
UserForm1.Show 0
For i = 1 To 50000
    Range("A" & i) = "Привет"
    UserForm1.Label1.Caption = "Столбец А заполняются словом привет..."
    UserForm1.Label2.Caption = "Заполнено " & i & " из 50000 ячеек"
    UserForm1.Repaint
Next i
For j = 1 To 50000
    Range("B" & j) = "Пока"
    UserForm1.Label1.Caption = "Столбец B заполняются словом пока..."
    UserForm1.Label2.Caption = "Заполнено " & j & " из 50000 ячеек"
    UserForm1.Repaint
Next j
UserForm1.Hide
End Sub
Во-первых, у меня почему-то когда значение доходить до 30 000 ячейки, юзерформа зависает (не отвечает), но потом в итоге макрос все же заканчивает свою работу. Как решить проблему?
Во-вторых Конопка отмена не работает… хоть защёлкайся,
Код в UserForm1:
Код:
Private Sub CommandButton1_Click()
End
End Sub
Мне кажется надо увеличить приоритет отображению, юзер форме но как это сделать?
Tigranik вне форума Ответить с цитированием
Старый 30.03.2013, 14:53   #2
Tigranik
Пользователь
 
Регистрация: 29.01.2013
Сообщений: 17
По умолчанию

Оказываться все элементарно и просто! Поясню для других чайников типо меня...

Просто после каждой строчки: UserForm1.Repaint нужно поставить строчку с DoEvent
И все работает как по маслу!
Tigranik вне форума Ответить с цитированием
Старый 30.03.2013, 23:12   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

После каждой излишне. Достаточно после каждой сотой или тысячной - так будет быстрее.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
зависает ноут alex(21) Безопасность, Шифрование 5 23.05.2012 14:32
показать изображение при UserForm1.Show 0 Blame Microsoft Office Excel 5 17.02.2012 01:15
Как в середину макроса вставить UserForm1 ? Snekich Microsoft Office Excel 4 09.12.2011 15:23
Зависает приложение Slow267 Win Api 2 02.05.2011 13:36
Зависает комп Voda Компьютерное железо 3 27.08.2009 22:31