Как обновить содержимое пользовательской формы по мере продвижения кода - PullRequest
0 голосов
/ 04 июня 2019

У меня проблема с кодом VBA, который выполняет разные функции.Я создал пользовательскую форму, которая держит пользователя в курсе прогресса.Это не индикатор выполнения.Это просто изменение текста метки.Однако, когда я запускаю его, ничего не меняется.Код не завершается, пока я не выйду из пользовательской формы.Кто-нибудь знает, как это исправить?Код указан ниже.Спасибо!

frmALL.Show
xUpload ("DEV")
frmALL.devProgress.Caption = "Complete!"
frmALL.devProgress.ForeColor = vbGreen
frmALL.qaProgress.Caption = "Uploading"
xUpload ("QA")
frmALL.qaProgress.Caption = "Complete!"
frmALL.qaProgress.ForeColor = vbGreen
frmALL.prodProgress.Caption = "Uploading"
xUpload ("PROD")
frmALL.prodProgress.Caption = "Complete!"
frmALL.prodProgress.ForeColor = vbGreen
frmALL.Header.Caption = "Success!"

devProgress, prodProgress и qaProgress - все соответствующие метки в пользовательской форме.Когда я устанавливаю формы showModal = false, то он просто отображается в виде белого экрана, пока не закончится с кодом, а затем покажет все «Успех».Это проблема, потому что она не показывает прогресс, как я думал.Мой код работает слишком быстро?Заранее спасибо!

1 Ответ

0 голосов
/ 04 июня 2019

Попробуем привести краткий пример использования _Change() на основе вашего кода:

Sub Open_UserForm()
    'make sure you have a userform_initialize subroutine for base info
    frmALL.Show vbModeless
End Sub

В коде вашей пользовательской формы у вас может быть:

Private Sub ComboBox1_Change()
    'ASSUMES DEVPROGRESS IS TRIGGERED BY COMBOBOX1 VALUE CHANGE
    xUpload ("DEV")
    frmALL.devProgress.Caption = "Complete!"
    frmALL.devProgress.ForeColor = vbGreen
    frmALL.qaProgress.Caption = "Uploading"
End Sub

Примеры изображений ... код фона для моего примера:

Private Sub UserForm_Initialize()
    ComboBox1.List = Array("cat", "dog")
End Sub

Private Sub combobox1_change()
    Label1.Caption = "label 1 = updated"
End Sub

Форма пользователя от начала (нажмите F5 из IDE для запуска):

enter image description here

Я выбираю что-то в выпадающем списке 1:

enter image description here

Изменено значение Combobox1, обновлена ​​метка:

enter image description here

...