Добавление элементов в список из выбора в другом списке в Excel VBA - PullRequest
0 голосов
/ 17 марта 2020

То, что я ищу для достижения sh, - это сделать выбор из фильтра списка (SelectHousingList) через таблицу в Excel и вернуться со значениями в той же строке, но в другом столбце (так же, как index / vlookup) , Затем отобразите список вариантов с тем же значением в первой строке и покажите значения во втором списке (CatalystTypeList).

Пока мой код выглядит следующим образом, но во втором списке ничего не отображается. Я не получаю сообщений об ошибках.

В первом списке есть 9 значений в строках, поэтому я пытаюсь использовать функцию listindex в vb для поиска этого значения в таблице в Excel.

CatalystTypeList.Clear

lastrow1 = Sheet3.Cells(Rows.Count, 28).End(xlUp).Row

curVal = SelectHousingList.List(SelectHousingList.ListIndex, 6)

Dim dict2 As Object
Set dict2 = CreateObject("Scripting.Dictionary")
For x = 29 To lastrow1
If Worksheets("Catalyst 2020A1").Cells(x, "D") = curVal Then
    If Not dict.Exists(Worksheets("Catalyst 2020A1").Cells(x, "A").Value) Then
        Me.CatalystTypeList.AddItem Worksheets("Catalyst 2020A1").Cells(x, "A")
        dict(Worksheets("Catalyst 2020A1").Cells(x, "A").Value) = 1
    End If
End If
Next x

1 Ответ

1 голос
/ 17 марта 2020

С помощью всех комментариев я выяснил, как использовать точки останова, чтобы облегчить переход и облегчить поиск ошибок в моем коде.

Вот код, который у меня есть в конце (я оставил строки, которые я вынул в качестве комментариев, чтобы все могли видеть, что я изменил).

CatalystTypeList.Clear

lastrow1 = Worksheets("Catalyst 2020A1").Cells(Rows.Count, 28).End(xlUp).Row

curVal = Worksheets("Catalyst 2020A1").Range("D26").Value   
'SelectHousingList.List(SelectHousingList.ListIndex, 6)

Dim dict2 As Object
Set dict2 = CreateObject("Scripting.Dictionary")
For x = 29 To lastrow1
If Worksheets("Catalyst 2020A1").Cells(x, "D") = curVal Then
    'If Not dict.Exists(Worksheets("Catalyst 2020A1").Cells(x, "A").Value) Then
        Me.CatalystTypeList.AddItem Worksheets("Catalyst 2020A1").Cells(x, "A")
        'dict(Worksheets("Catalyst 2020A1").Cells(x, "A").Value) = 1
    End If
'End If
Next x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...