Добрый день. При инициализации формы в комбобоксе отображаются уникальные значения. После изменения данных в комбобоксе 1 во втором комбобоксе появляются повторяющие значения. См. Клиент "Колорит". Как можно исправить код?
Добрый день. При инициализации формы в комбобоксе отображаются уникальные значения. После изменения данных в комбобоксе 1 во втором комбобоксе появляются повторяющие значения. См. Клиент "Колорит". Как можно исправить код?parovoznik
Private Sub ComboBox1_Change() Dim i As Long, LastRow As Long, klient As String Static oDict As Object Me.ComboBox2.Clear klient = Me.ComboBox1 If oDict Is Nothing Then Set oDict = CreateObject("Scripting.Dictionary")
With Sheets("данные") LastRow = .Cells(Rows.Count, 1).End(xlUp).Row For i = 4 To LastRow If .Cells(i, 1) = klient Then If Not oDict.exists(.Cells(i, 2).Value) Then oDict.Add .Cells(i, 2).Value, .Cells(i, 2).Value Me.ComboBox2.AddItem .Cells(i, 2) End If End If Next End With oDict.RemoveAll End Sub
[/vba]
Можно словарь применить [vba]
Код
Private Sub ComboBox1_Change() Dim i As Long, LastRow As Long, klient As String Static oDict As Object Me.ComboBox2.Clear klient = Me.ComboBox1 If oDict Is Nothing Then Set oDict = CreateObject("Scripting.Dictionary")
With Sheets("данные") LastRow = .Cells(Rows.Count, 1).End(xlUp).Row For i = 4 To LastRow If .Cells(i, 1) = klient Then If Not oDict.exists(.Cells(i, 2).Value) Then oDict.Add .Cells(i, 2).Value, .Cells(i, 2).Value Me.ComboBox2.AddItem .Cells(i, 2) End If End If Next End With oDict.RemoveAll End Sub