Выберите все строки и столбцы с данными, затем отфильтруйте по нескольким критериям - PullRequest
0 голосов
/ 21 декабря 2018

Как выбрать все строки и столбцы, содержащие данные, а затем отфильтровать по нескольким критериям?

Я записал макрос.

    Sheet2.Activate
    Sheet2.Range("$A$1:$L$85").AutoFilter Field:=12, Criteria1:=Array( _
    "Apples", "Pineapple", "Oranges", "Mango", "Grapes", _
    "Banana", "Papaya"), Operator:=xlFilterValues
    Columns("A:L").Select
    Selection.copy
    Sheets("Food").Select
    Range("A:L").Select
    Sheet7.Paste'

Я хочу выбрать все данные от A1 до L1.Но мой код только для определенного количества строк и столбцов.Если данные изменяются с $A$1:$L$85 и превышают 85 строк и больше, чем столбец L, они не будут захватывать все данные, которые необходимо отфильтровать.

1 Ответ

0 голосов
/ 21 декабря 2018

На самом деле вы можете использовать ссылку, приведенную в комментарии, но вы можете попробовать это.
Кажется, метод UsedRange как-то улучшен в последних версиях Excel (в настоящее время используется Office 365).

Dim lc As Long, lr As Long
Dim r As Range

With Sheet2
  .AutoFilterMode = False
  With .UsedRange
    lr = .Rows.Count
    'lc = .Columns.Count
    lc = 12 '/* your column is bounded to L */
  End With

  Set r = .Range(.Cells(1, 1), .Cells(lr, lc))
  r.AutoFilter Field:=12, Criteria1:=Array( _
               "Apples", "Pineapple", "Oranges", "Mango", "Grapes", _
               "Banana", "Papaya"), Operator:=xlFilterValues

  r.SpecialCells(xlCellTypeVisible).Copy Sheet7.Range("A1")
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...