Я работаю в Excel 2010 и это редактор VB. У меня есть форма с 6 comboboxes, и когда я инициализирую форму, то то же самое должно произойти для всех 6 comboboxes. В настоящее время мне приходится писать те же строки кода для различных combobox, как показано ниже.VB Можно ли использовать цикл для управления несколькими формами управления?
Private Sub Form_Initialize()
Dim Table As ListObject
Set Table = ThisWorkBook.Worksheets("Sheet1").ListObjects("Table1")
Dim Rows As Integer
Rows = Table.ListRows.Count
Dim i As Integer
With Me.ComboBox_1
.Clear
.Value = Empty
For i = 1 to Rows
.AddItem Table.DataBodyRange(i, 1)
Next i
End With
With Me.ComboBox_2
.Clear
.Value = Empty
for i = 1 to Rows
.AddItem Table.DataBodyRange(i, 1)
Next i
End With
'This repeats for another 4 comboboxes (ComboBox_3, ComboBox_4,
'ComboBox_5 and ComboBox_6)
End Sub
Это становится очень раздражает, чтобы написать тот же код снова и снова, и становится особенно раздражает, когда я хочу, чтобы изменить процедуру для Наримера и должен обновить 5 других также.
Можно ли написать один код, который петли для каждой выпадающей таблицы?
Что-то вроде [это] (http://stackoverflow.com/questions/19624728/looping-through-specific-combo- ящики-массив)? – findwindow
Или [это] (http://stackoverflow.com/questions/3916857/access-vba-how-would-i-have-a-loop-in-vba-that-allows-me-to-loop-through- Contr)? –