Есть ли более эффективный способ написать этот код пользовательской формы?
Private Sub Userform_Initialize()
'do stuff
With Item1_DropDown
.AddItem "Monday"
.AddItem "Tuesday"
.AddItem "Wednesday"
End With
With Item2_DropDown
.AddItem "Monday"
.AddItem "Tuesday"
.AddItem "Wednesday"
End With
With Item3_DropDown
.AddItem "Monday"
.AddItem "Tuesday"
.AddItem "Wednesday"
End With
'and so on, and so on. (I have about fifty of these 'With/End With' blocks)
End Sub
По сути, я хотел бы иметь возможность перестать писать так много этих блоков «With/End With». Прямо сейчас у меня есть этот тип кода в четырех моих пользовательских формах аналогичной конструкции. Это занимает так много текстового пространства, и это кажется пустой тратой времени. Есть лучший способ это сделать?
Пожалуйста, знайте, что я никогда не писал модуль класса. Так что, если решение требует этого, мне нужно будет вмешаться в него.
Спасибо,
Элиас
PopulateList Item1_DropDown
. Вы также можете еще больше упростить, перебирая все элементы управления в форме, проверяя тип каждого, а затем, если это раскрывающийся список, передайте его своему подчиненному для заполнения. Если у вас есть несколько типов раскрывающихся списков в одной и той же форме, вы можете рассмотреть возможность использования какого-либо правила именования, которое вы можете использовать для определения того, как обрабатывается каждый из них. - person Tim Williams   schedule 17.07.2013