簡體   English   中英

如何僅訪問VBA范圍內的過濾行?

[英]How do I access just the filtered rows in a range from VBA?

我希望能夠在VBA中使用AutoFilter方法的結果。 我可以應用AutoFilter方法(使用命名范圍),但是無法弄清楚如何在VBA中創建僅包含結果的Range變量。 然后,我想遍歷此結果范圍。 我不知道如何簡單地檢查每一行的Visible屬性並對其進行操作,就無法做到這一點。

Public Sub CopyFilteredRows()
   Dim sourceRg As Range, filteredRg As Range, objRow As Range

   Set sourceRg = ThisWorkbook.Names("FY10CountsRg").RefersToRange
   sourceRg.AutoFilter Field:=1, Criteria1:="=D-144", Operator:=xlOr, _
     Criteria2:="=D-200"

   For Each objRow In filteredRg.Rows
      ''do something
   Next

End Sub

嘗試此操作-它應該只擊可見單元格並打印其值-您應該可以對其進行調整:

Dim rgAreas As Range: Set rgAreas = FilteredRg.SpecialCells(xlCellTypeVisible)
Dim rgArea  As Range
Dim rgCell  As Range

For Each rgArea In rgAreas.Areas
    For Each rgCell In rgArea.Cells
        Debug.Print rgCell.Address & ": " & rgCell.Value
    Next rgCell
Next rgArea

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM