Как мне получить доступ только к отфильтрованным строкам в диапазоне от VBA? - PullRequest
1 голос
/ 23 марта 2011

Я хочу использовать результаты метода автофильтрации в VBA.Я могу применить метод AutoFilter (используя именованный диапазон), но не могу понять, как создать переменную Range в VBA, которая включает только результаты.Затем я хочу просмотреть этот диапазон результатов.Я не могу понять, как это сделать, не просто проверяя каждую строку на предмет ее свойства 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

1 Ответ

3 голосов
/ 23 марта 2011

Попробуйте это - он должен просто поразить видимые ячейки и напечатать их значения - вы должны быть в состоянии настроить его, чтобы сделать работу:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...