从表中选定范围内的每个单元格获取行号和VBA?

时间:2018-03-29 22:39:21

标签: excel-vba excel-formula excel-tables vba excel

好。例如,如果我有一个包含“国家/地区”列和其他“城市”的表格,我会在国家/地区进行过滤。如何从每个寄存器中获取使用VBA过滤的行号?

enter image description here

我喜欢获得行数:2和6.

enter image description here

提前致谢。

2 个答案:

答案 0 :(得分:1)

使用表格的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

要记住的一些事情:

  • 如果工作表集合中的工作表不是#1,则可能需要更改Worksheets(1)上的索引编号。
  • 如果表名为其他名称,您可能需要更改.ListObjects("Table1")上的表名。

答案 1 :(得分:1)

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

 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