简体   繁体   中英

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

Well. If I have for example a table with a column " countries " and other one "cities " And I make a Filter on Countries. How I can get the row number from each register filtered using VBA?

在此处输入图片说明

I like to get rows numbers: 2 and 6.

在此处输入图片说明

Thanks in advance.

Use the ListRows method of your table, looping through each row.

In this case you can print all the rows in the table that passes your criteria of 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

Some things to remember:

  • You may need to change the index number on Worksheets(1) if the sheet is not #1 in the worksheet collection.
  • You may need to change the table name on .ListObjects("Table1") if the table is named something else.

This could be another solution:

 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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM