Попытка отфильтровать лист, используя ячейку в другом листе - PullRequest
0 голосов
/ 02 апреля 2020

Итак, мой первый лист - это лист кнопок «Макрос», который содержит все макросы, которые я использую для манипулирования данными в рабочей книге, и я пытаюсь создать кнопку, которая принимает данные в указанной ячейке c, а затем Отфильтруйте лист, содержащий данные, только строки, содержащие входное значение.

Я получаю Run-time error '1004': AutoFilter method of Range class failed

Кнопка содержит этот код:

Private Sub CommandButton1_Click()
    Dim lr As Long
    With ThisWorkbook.Sheets("Part List")
        lr = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).Row
        .Range("A1:E" & lr).AutoFilter field:=5, Criteria1:=ThisWorkbook.Sheets("Macro").Cells(1, 1).Value
    End With
End Sub

Это лист макроса Macro Page

Это страница, которую макрос кнопки пытается отфильтровать enter image description here

1 Ответ

1 голос
/ 02 апреля 2020

ваши критерии состоят из одного значения, поэтому для него нет ни массива, ни Operator:=xlFilterValues параметра

Private Sub CommandButton1_Click()
    Dim lr As Long
    With ThisWorkbook.Sheets("Part List")
        lr = .Cells(.Rows.count, "A").End(xlUp).Offset(1, 0).Row
        .Range("A1:A" & lr).AutoFilter field:=1, Criteria1:=ThisWorkbook.Sheets("Macro").Cells(1, 1).Value
    End With
End Sub

, где я также принял field:=1, поскольку ваша "база данных" состоит только из 1 столбца (Range ( «A1: A» & lr))

, если вам действительно нужно отфильтровать столбец «E» (пятый столбец, начиная с A), а затем просто изменить

.Range("A1:A" & lr).AutoFilter field:=1

на

.Range("A1:E" & lr).AutoFilter field:=5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...