从筛选表中选择单元格值

时间:2017-11-14 18:04:13

标签: excel excel-vba select autofilter vba

我有一个宏通过一个表,从Col 5中选出我想要的值(" ref"),然后在其余的代码中使用。

Dim Lobj As ListObject

Set Lobj = SourceBk.Sheets("RefSheet2_x").ListObjects("Table1")

For x = 1 To Lobj.DataBodyRange.Rows.Count

   Ref = Lobj.DataBodyRange(x, 5)

Next x

我需要的是能够运行代码,以便在过滤表时只对可见行起作用(通常过滤器将在第2列上,但可能包括其他列上的过滤器)。我当前的代码忽略了我已应用的任何过滤,并在整个表上工作。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

您想要检查整行Hidden属性。这些方面的东西:

Public Sub Answer()
    Dim Lobj As ListObject
    Dim Ref As Variant
    Dim x As Long

    Set Lobj = SourceBk.Sheets("RefSheet2_x").ListObjects("Table1")

    With Lobj
        For x = 1 To .DataBodyRange.Rows.Count
            If Not .DataBodyRange.Rows(x).EntireRow.Hidden Then
                Ref = .DataBodyRange(x, 5).Value
                '...
            End If
        Next
    End With
End Sub