我正在尝试在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
答案 0 :(得分:1)
已命名的参数在=号之前需要冒号(以及所有相关行之间的逗号和行继续符):
shProject.Range("A5:A" & lngLastRow).AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=shBudget.Range("A2"), _
Unique:=True