Как использовать значение в списке в VBA?

Итак, у меня есть список со значениями в нем. Цель состоит в том, чтобы щелкнуть элемент, а затем заполнить отдельный список совпадающими данными. Я могу обрабатывать совпадение и заполнение для второго списка, но сейчас мой код не возвращает значение, когда я выбираю элемент в первом списке. Я вижу, что мое значение не возвращается, потому что код прерывается в строке, где я устанавливаю значение ячейки для переменной «name», которую я использую:

Private Sub ListBox1_Click()
    Dim iCnt As Long
    Dim name As Variant

    For iCnt = 0 To Me.ListBox1.ListCount - 1
        If ListBox1.Selected(iCnt) = True Then
            name = Me.ListBox1.List(iCnt)
            ThisWorksheet.Sheets("Program").Range("K6").Value = name
        End If
        'subsequent match and populate will go here.

End Sub

Как мне исправить свой синтаксис, чтобы вернуть строковое значение выбранного элемента, чтобы затем я мог использовать его для моего последующего сопоставления?


person Poppenhoffer    schedule 14.10.2019    source источник
comment
Где твой Next iCnt?   -  person Tom    schedule 14.10.2019
comment
Это руководство должно помочь вам начать работу.   -  person Storax    schedule 14.10.2019
comment
Извините, я немного порезал. У меня были все мои Nexts и End If, просто был неправильный код. Разместил ответ ниже. Даже не нужен был цикл For, только правильная команда.   -  person Poppenhoffer    schedule 14.10.2019
comment
Некоторые подсказки: 1) ThisWorksheet.Sheets("Program")…. неверно и вызовет сообщение об ошибке, должно быть: ThisWorkBook.Worksheets("(Program")... или относится просто к .CodeName листа, 2) .List требует двумерной ссылки, включая 0-ю строку плюс индекс столбца, не только (ListBox1.List(iCnt), 3) вам не нужно переходить ко всему списку списков, чтобы получить фактический ListBox1.ListIndex, отсчитываемый от нуля, 4) избегайте крещения переменной name, т.е. не перегружайте существующие имена методов или функций, вы можете столкнуться с проблемами.   -  person T.M.    schedule 14.10.2019


Ответы (1)


name = Me.ListBox1.Value

Это был правильный код

person Poppenhoffer    schedule 14.10.2019