Вызов пользовательской формы в Excel VBA и продолжение в зависимости от того, какая кнопка была нажата
У меня в моей книге Excel есть четыре модуля, три кнопки и одна пользовательская форма, индикатор прогресса. Я бы хотел показать индикатор прогресса во время выполнения всех четырех модулей.
Пример:
Я нажимаю на кнопку, которая выполняет следующий код и делает видимость моего прогресса:
- Заполнение ComboBox со списком диаграмм на листе
- Userform.Show на кнопке формы не распознает пользовательскую форму, получив ошибку 424
- Excel VBA Userform, обновить и удалить базу данных,
- Импорт и экспорт пользовательских форм и модулей
- Не удается закрыть пользовательскую форму
Private Sub GWPCClearDataButton_Click() ProgressBar.Show End Sub
В моей пользовательской форме у меня есть следующий код:
Private Sub UserForm_Activate() GWPCClearData End Sub
Это вызывает один из моих четырех модулей, который работает до сих пор.
Теперь вот где я застрял.
Конечно, я хотел бы использовать тот же самый прогресс для всех модулей, но как я могу определить в блоке кода пользовательской формы, на какую кнопку щелкнул, а затем в зависимости от этого вызова другого модуля?
Пример:
Private Sub GWPCClearDataButton_Click() ProgressBar.Show End Sub Private Sub GSEPClearDataButton_Click() ProgressBar.Show End Sub
UserForm:
Private Sub UserForm_Activate() If "BUTTON_NAME" = "GWPCClearDataButton" Then GWPCClearData ElseIf "BUTTON_NAME" = "GSEPClearDataButton" Then GSEPClearData End if End Sub
Как я мог это сделать? Мне еще предстоит найти возможность передать параметр моей пользовательской форме, которая будет содержать имя кнопки.
Спасибо за любую помощь.
- Повторить макрос после ввода UserForm
- Excel Userform - Обратный фокус на ComboBox после нажатия кнопки ввода
- Вызов массива по пользовательской форме Завершение / закрытие VBA
- Функция не записывает в требуемую ячейку следующий расчет массива; Пользовательские формы excel vba
- Использование операторов IF & AND с флажками в пользовательской форме
- Как вставить изображение из Интернета в форму VBA Excel Userform
- Ошибка в Userform.Hide внутри Workbook_Deactivate event
- Добавить правила IF с использованием пользовательской формы в excel vba
В вашей форме
Sub Start_Form(Called_From as string) 'Process Called_From as needed End Sub
Когда вы вызываете вашу форму, просто вызывайте sub first, как показано ниже.
<form_name>.Start_Form "Button Called From" <form_name>.Show
В основном вам нужно передать переменную через другую суб (можно назвать что угодно) в пользовательской форме, а затем показать форму после
Код формы пользователя
Dim test Private Sub UserForm_Activate() MsgBox test End Sub Sub start(tt) test = tt End Sub
Код модуля
Sub t() UserForm1.start "Hello World!" UserForm1.Show End Sub