Расширенный фильтр - переменная не определена - PullRequest
2 голосов
/ 30 сентября 2019

Я пытаюсь создать расширенный фильтр в VBA и вставить уникальный контент на новый лист. Однако я получаю сообщение об ошибке «переменная не определена». Обратите внимание, что я полностью начинающий пользователь VBA

. Я пытаюсь скопировать значения из листа и вставить его в новый. Однако есть дубликаты, и я попробовал метод расширенного фильтра в VBA. Копия данных должна применяться только в том случае, если 1 или 2 определенного столбца выбора не заполнены.

Sub copyuniqval()

    shBudget.Range("A2:c1048576").ClearContents
    Dim lngLastRow As Long: lngLastRow = shProject.Range("A1048576").End(xlUp).Row

    If shProject.Range("K1048576").End(xlUp).Row = "" And shProject.Range("L1048576").End(xlUp).Row = "" Then
        MsgBox "Do Nothing"
    Else
        shProject.Range("A5:A" & lngLastRow).AdvancedFilter_
        Action = xlFilterCopy_
        CopyToRange = shBudget.Range("A2")
        Unique = True
End Sub

Он должен смотреть на столбцы K и L, если он пуст, msgBox с «Ничего не делать». Если оно не пустое, скопируйте значения в столбце A и вставьте их на новый лист. И вставьте только уникальные значения. Однако, с моим кодом выше, я получаю compile error: Variable not defined

1 Ответ

1 голос
/ 30 сентября 2019

Именованным аргументам необходимо использовать двоеточие перед знаком = (а также запятые между ними и символы продолжения строки для всех соответствующих строк):

shProject.Range("A5:A" & lngLastRow).AdvancedFilter _
        Action:=xlFilterCopy, _
        CopyToRange:=shBudget.Range("A2"), _
        Unique:=True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...