我有一个宏通过一个表,从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列上,但可能包括其他列上的过滤器)。我当前的代码忽略了我已应用的任何过滤,并在整个表上工作。
任何帮助表示赞赏!
答案 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