高级过滤器-变量未定义

时间:2019-09-30 13:38:45

标签: excel vba

我正在尝试在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 个答案:

答案 0 :(得分:1)

已命名的参数在=号之前需要冒号(以及所有相关行之间的逗号和行继续符):

shProject.Range("A5:A" & lngLastRow).AdvancedFilter _
        Action:=xlFilterCopy, _
        CopyToRange:=shBudget.Range("A2"), _
        Unique:=True