ListBox имеет несколько одинаковых значений - PullRequest
0 голосов
/ 11 марта 2020

Я использую выбор из предыдущего списка 'HousingTypeList', чтобы определить, что будет в следующем списке 'CatalystDiameterList' путем поиска в таблице.

Данные, добавляемые в «CatalystDiameterList», содержатся в строке «H» (начиная с H6).

Мой код до сих пор прекрасно работает; тем не менее, он вытягивает несколько одинаковых значений, поэтому у меня есть длинный список из многих одинаковых значений.

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

Private Sub HousingTypeList_Click()

lastrow = Sheet2.Cells(Rows.Count, 5).End(xlUp).Row

curVal = Me.HousingTypeList.Value

For x = 6 To lastrow
    If Worksheets("FSC PSC PFC").Cells(x, "B") = curVal Then
        Me.CatalystDiameterList.AddItem Worksheets("FSC PSC PFC").Cells(x, "H")
    End If
Next x

End Sub

Я открыт для редактирования этого кода, чтобы предотвратить использование коэффициентов или добавить что-то в этот фильтр и вычесть несколько после их добавления.

Любая / Вся помощь очень ценится!

Спасибо всем!

1 Ответ

2 голосов
/ 12 марта 2020

Создайте объект Dictionary, как в следующем коде, и замените ваш l oop следующим:

Dim dict As Object
  Set dict = CreateObject("Scripting.Dictionary")
  For x = 6 To lastRow
    If Worksheets("FSC PSC PFC").Cells(x, "B") = curVal Then
        If Not dict.Exists(Worksheets("FSC PSC PFC").Cells(x, "H").value) Then
            Me.CatalystDiameterList.AddItem Worksheets("FSC PSC PFC").Cells(x, "H")
            dict(Worksheets("FSC PSC PFC").Cells(x, "H").value) = 1
        End If
    End If
Next x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...