使用 VBA 从 Table 中选定范围内的每个单元格获取行号?

Get Row number from each cell in selected range in Table with VBA?

嗯。例如,如果我有一个 table 和一个列“countries” 和另一个 "cities" 并且我对国家/地区进行了筛选。如何从使用 VBA?

过滤的每个寄存器中获取行号

我喜欢获取行号:2 和 6。

提前致谢。

使用 table 的 ListRows 方法,遍历每一行。

在这种情况下,您可以打印 table 中符合 Not ...Hidden 条件的所有行。

Sub printUnhiddenRows()

    Dim r As ListRow, tbl As ListObject
    Set tbl = ThisWorkbook.Worksheets(1).ListObjects("Table1")
    
    For Each r In tbl.ListRows
        If Not r.Range.Rows.Hidden Then Debug.Print r.Range.Row
    Next r

End Sub

需要记住的一些事情:

  • 如果 sheet 不是作品中的第一名,您可能需要更改 Worksheets(1) 上的索引编号sheet collection.
  • 如果 table 被命名为其他名称,您可能需要更改 .ListObjects("Table1") 上的 table 名称。

这可能是另一个解决方案:

 Dim rngTable As Range
Dim country As Range
Set rngTable = Range("Table1[Country]")

    rngTable.Select
    Selection.SpecialCells(xlCellTypeVisible).Select
    For Each country In Selection.Cells
        MsgBox country.Row
    Next