По моему опыту, событие изменения поля со списком запускается только при изменении списка элементов списка со списком, если значение поля со списком не равно нулю.Если эта проблема возникает при первой инициализации комбинированного списка, не назначайте значение по умолчанию до тех пор, пока не заполните заполненный список.
Если вам нужно изменить список комбинированного списка в другое время, как говорит Алекс К.логический флаг, указывающий, хотите ли вы игнорировать событие изменения.
Из вашего вопроса мне не ясно, срабатывает ли событие изменения один раз, когда вы заполняете комбинированный список, или один раз для каждого .AddItem
.Если это последняя проблема, то вы можете сократить количество событий изменений, создав массив значений для вашего комбинированного списка и присвоив его списку .List
.
Вот пример с двумерным массивом, который заполняет комбинированный список именами и путями всех открытых рабочих книг.(1-й массив также работает.)
Private Sub InitializeComboBox()
Dim aList() As String
Dim i As Integer, iMax As Integer
' build combobox list with zero-based array
iMax = Application.Workbooks.Count - 1
ReDim aList(iMax, 2)
For i = 0 To iMax
With Application.Workbooks(i + 1)
aList(i, 0) = i
aList(i, 1) = .Name
aList(i, 2) = .Path
End With
Next i
With Me.ComboBox1
.ColumnCount = 3
.ColumnWidths = "0 pt;80 pt;220 pt"
.ListWidth = "300 pt"
.List = aList
End With
End Sub