Создание поля со списком только с одним из каждого значения из рабочего листа с условием IF VBA Excel - PullRequest
0 голосов
/ 28 мая 2020

Этот код ниже отлично работает на мне. Он сортирует элементы в первом столбце с несколькими похожими именами и помещает их в список в поле со списком. Это только первый слой. В нем все еще есть второй (2-й столбец) и третий (3-й столбец) слои. Где должно быть выполнено то же условие, что и в первом столбце. GenInfo_PMat - первое поле со списком | GenInfo_PMatMan - 2-е поле со списком | GenInfo_PMatGr - 3-й выпадающий список

Вывод должен быть похож на фильтр. Мне нужно добавить 2 набора «условия if», я полагаю. enter image description here Это условие слишком глубокое, чтобы заставить его работать.

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. Мы будем очень признательны за любые более простые и лучшие идеи.

...