Этот код ниже отлично работает на мне. Он сортирует элементы в первом столбце с несколькими похожими именами и помещает их в список в поле со списком. Это только первый слой. В нем все еще есть второй (2-й столбец) и третий (3-й столбец) слои. Где должно быть выполнено то же условие, что и в первом столбце. GenInfo_PMat
- первое поле со списком | GenInfo_PMatMan
- 2-е поле со списком | GenInfo_PMatGr
- 3-й выпадающий список
Вывод должен быть похож на фильтр. Мне нужно добавить 2 набора «условия if», я полагаю. Это условие слишком глубокое, чтобы заставить его работать.
Dim dict As Scripting.Dictionary, myItem As Variant
Dim lrow As Long, i As Long
Dim myValues() As Variant
Dim PMat As Worksheet, PMatPol As Variant
Set PMat = Sheets("PlasticMaterial")
With PMat
Set dict = New Scripting.Dictionary
lrow = PMat.Cells(Rows.Count, 1).End(xlUp).Row
myValues = PMat.Range(Cells(2, 1), Cells(lrow, 1))
For i = 1 To UBound(myValues, 1)
If Not dict.Exists("Item" & myValues(i, 1)) Then
dict.Item("Item" & myValues(i, 1)) = myValues(i, 1)
End If
Next i
For Each myItem In dict
GenInfo_PMat.AddItem dict.Item(myItem)
Next myItem
End With
Я видел этот метод много лет назад go. Мы будем очень признательны за любые более простые и лучшие идеи.