Я хочу получить значение ячейки в отфильтрованной таблице. Кажется, он работает только для первого значения, но оттуда он также подсчитывает скрытые значения.
Я пытаюсь получить дополнительную информацию о конкретных значениях в таблице. Это своего рода пошаговый процесс фильтрации для некоторых запросов. Поле со списком используется для выбора конкретной области интереса, которая затем показывает «заголовок» всех значений в этой области в ListBox. Затем должно быть возможно увидеть подробное описание запроса, который выбран в ListBox.
Когда запрос выбран в ListBox, он использует номер индекса, чтобы найти нужную строку в таблице иполучить описание оттуда.
Private Sub ListBox1_Click()
Dim tbl As ListObject
Dim IndexNmr As Integer
ComboValue = ComboBox1.Value
'Store Table Object to a variable and clear all filters
Set tbl = Worksheets("Data").ListObjects("Tabel1")
tbl.AutoFilter.ShowAllData
'Filter Table Object based on ComboValue
tbl.Range.AutoFilter Field:=8, Criteria1:= _
ComboValue
'Find selected index in List Box
For x = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(x) = True Then
IndexNmr = x + 1
End If
Next x
'Find Caption in Table based on the index number
CaptionString = tbl.DataBodyRange.Columns(10).SpecialCells(xlCellTypeVisible).Cells(IndexNmr).Value
Label1.Caption = CaptionString
End Sub
Кажется, он работает только для первого видимого значения, которое я могу получить:
`CaptionString = tbl.DataBodyRange.Columns(10).SpecialCells(xlCellTypeVisible).Cells(1).Value`
Но когда IndexNmr - ex. 2, он просто занимает следующую строку ниже первой видимой, даже если она скрыта.
Пример данных таблицы и фильтрации