У меня есть макрос VBA, который открывается, задавая пользователю ряд вопросов (попросив их сказать, какая из открытых книг выполняет какую функцию). У меня есть ряд userform.show команд, как показано ниже:Excel VBA, не показывающий userform
UserForm2.Show ' select cost data file
Set piersBook = ActiveWorkbook
UserForm5.Show ' select IRR file
Set irrBook = ActiveWorkbook
UserForm6.Show ' select BC summary file
Set bcSummary = ActiveWorkbook
(сейчас, после этого события, я понимаю, что это было бы более просто поместить их в один UserForm).
Чистый эффект для последнего не отображается.
После некоторых исследований я изменил код:
UserForm2.Show ' select cost data file
Set piersBook = ActiveWorkbook
UserForm5.Show ' select IRR file
Set irrBook = ActiveWorkbook
DoEvents
UserForm6.Show ' select BC summary file
Set bcSummary = ActiveWorkbook
Это проработал около 5 или 6 итераций, прежде чем она вернулась к исходной задаче.
Я установил контрольные точки в код инициализации userform. Все они были вызваны, и пользовательские формы все работали (пока я не удалил точки останова).
Наконец-то я начал удалять нарушающую форму пользователя: проблема перешла к следующей. И снова, когда это было удалено, к тому, что было раньше. Код
The UserForms' идентична:
Private Sub ListBox1_Click()
Workbooks(ListBox1.Value).Activate
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim wb As Workbook
For Each wb In Workbooks
ListBox1.AddItem wb.Name
Next wb
End Sub
Любые мысли? В настоящий момент я жестко кодирую входы, которые не идеальны. Большое спасибо.
Великими - Огромное спасибо. – user13167