ListBox l oop пропускает первый элемент, когда выбрано несколько элементов - PullRequest
0 голосов
/ 11 июля 2020

Как говорится в заголовке, у меня есть код, который просматривает список и устанавливает некоторые переменные для выбранного элемента. Как только пользователь выбирает более одного элемента, l oop пропускает первый выбранный элемент. Однако, если выбран только один элемент, он работает правильно. Я не могу понять этого!

With Me.lstQualifier
    For iCnt = 0 To Me.lstQualifier.ListCount - 1
        If (Me.lstYear.Selected(iCnt) = True) Then
            qual = Me.lstQualifier.Column(1)
            qualType = Me.lstQualifier.Column(0)
            Call AddQualifier(ProductCat, make, model, yr, BasePart, qual, qualType)
        End If
    Next
End With

Ответы [ 2 ]

1 голос
/ 11 июля 2020

Вместо того, чтобы перебирать все элементы, l oop просматривает выбранные элементы. Поскольку у вас есть With Me.lstQualifier, не нужно повторять Me.lstQualifier в l oop.

Dim varItem As Variant
With Me.lstQualifier
    For Each varItem In .ItemsSelected
        If Not IsNull(varItem) Then
            qual = .Column(1, varItem)
            qualType = .Column(0, varItem)
            Call AddQualifier(ProductCat, make, model, yr, BasePart, qual, qualType)
        End If
    Next
End With
0 голосов
/ 11 июля 2020

Действительно глупая ошибка. Функция .Column () вызывает номер столбца и номер строки. теперь код выглядит так

With Me.lstQualifier
    For iCnt = 0 To Me.lstQualifier.ListCount - 1
        If (Me.lstYear.Selected(iCnt) = True) Then
            qual = Me.lstQualifier.Column(1, iCnt) 'added iCnt as row number
            qualType = Me.lstQualifier.Column(0, iCnt) 'added iCnt as row number
            Call AddQualifier(ProductCat, make, model, yr, BasePart, qual, qualType)
        End If
    Next
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...