Итак, у меня есть список со значениями в нем. Цель состоит в том, чтобы щелкнуть элемент, а затем заполнить отдельный список совпадающими данными. Я могу обрабатывать совпадение и заполнение для второго списка, но сейчас мой код не возвращает значение, когда я выбираю элемент в первом списке. Я вижу, что мое значение не возвращается, потому что код прерывается в строке, где я устанавливаю значение ячейки для переменной «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
Как мне исправить свой синтаксис, чтобы вернуть строковое значение выбранного элемента, чтобы затем я мог использовать его для моего последующего сопоставления?
Next iCnt
? - person Tom   schedule 14.10.2019ThisWorksheet.Sheets("Program")….
неверно и вызовет сообщение об ошибке, должно быть:ThisWorkBook.Worksheets("(Program")...
или относится просто к.CodeName
листа, 2).List
требует двумерной ссылки, включая 0-ю строку плюс индекс столбца, не только (ListBox1.List(iCnt)
, 3) вам не нужно переходить ко всему списку списков, чтобы получить фактическийListBox1.ListIndex
, отсчитываемый от нуля, 4) избегайте крещения переменнойname
, т.е. не перегружайте существующие имена методов или функций, вы можете столкнуться с проблемами. - person T.M.   schedule 14.10.2019