好。例如,如果我有一个表格,其中有一列“国家”和另一个“城市”,并且我对国家进行了过滤。如何从使用 VBA 过滤的每个寄存器中获取行号?
我喜欢获取行号:2 和 6。
提前致谢。
使用ListRows
表格的方法,循环遍历每一行。
在这种情况下,您可以打印表中通过您的条件的所有行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
Worksheets(1)
如果工作表不是工作表集合中的#1,您可能需要更改索引号。.ListObjects("Table1")
如果表被命名为其他名称,您可能需要更改表名。这可能是另一种解决方案:
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