在VBA excel中删除重复项

在VBA excel中删除重复项,vba,excel,Vba,Excel,我试图删除在vba中编写的宏末尾的重复项。宏将运行,但当要删除重复项时,它表示当对象作为范围进行尺寸标注并设置为范围时,该对象不支持该属性或方法。我真的很困惑为什么会发生这种情况,我似乎无法发现是什么导致了这种错误。我已经在下面粘贴了导致错误的代码和设置范围对象的点。任何帮助都将不胜感激 Set WS = ThisWorkbook.ActiveSheet With WS Set Rng1 = .Range("B2:B" & .Range("B" & .Ro

我试图删除在vba中编写的宏末尾的重复项。宏将运行,但当要删除重复项时,它表示当对象作为范围进行尺寸标注并设置为范围时,该对象不支持该属性或方法。我真的很困惑为什么会发生这种情况,我似乎无法发现是什么导致了这种错误。我已经在下面粘贴了导致错误的代码和设置范围对象的点。任何帮助都将不胜感激

Set WS = ThisWorkbook.ActiveSheet
    With WS
        Set Rng1 = .Range("B2:B" & .Range("B" & .Rows.Count).End(xlUp).Row)
        Set rng2 = .Range("C1:D" & .Range("C" & .Rows.Count).End(xlUp).Row)
    End With

If UBound(WrdArray2) < 0 Then
    ActiveSheet.rng2.RemoveDuplicates
        End
End If
Set WS=thiswoolk.ActiveSheet
与WS
设置Rng1=.Range(“B2:B”和.Range(“B”和.Rows.Count).End(xlUp.Row)
设置rng2=.Range(“C1:D”和.Range(“C”和.Rows.Count).End(xlUp.Row)
以
如果UBound(WrdArray2)<0,则
ActiveSheet.rng2.RemoveDuplicates
终点
如果结束
而不是

ActiveSheet.rng2.RemoveDuplicates
请尝试以下方法:

rng2.RemoveDuplicates

导致错误的原因是您已经为对象rng2设置了范围,并且rng2未包含在Activesheet中。也就是说,rng2是由您创建的单独对象,不是Activesheet的属性。

您可以尝试在
rng2前面没有
Activesheet
的情况下进行操作。移除的副本
?如果
ActiveSheet
不是
rng2
所在的工作表
Set
,则此语句可能会导致错误。