说真的,楼主这段代码写的整个乱七八糟,先说报不报错,就算不报错!
也完全不会实现楼主所要的功能.
排序也根本没有必要
strColumnLetter ,strColumnRange ,rngCurrentCell 这几个变量也完全没有必要
直接set rngCurrentCell=range("A1")就好了
另外If rngCurrentCell.Value = rngCurrentCell.Value Then这句就更离谱了
比较同一单元格的值是否相同?????肯定永远为TRUE
还有Not IsEmpty(rngCurrentCell)这个是表示变量是否初始化,你前面已经用SET初始化了,这句永远都只会为假,所以不可能进入循环
楼主补充下,是不是把A列中有重复值所在的行全部删除???我重新写一段
Sub 删除重复行()
Dim Adic, EndRow As Long, delrng As Range
Set Adic = CreateObject("Scripting.Dictionary")
With Sheets("Sheet2")
EndRow = .[A65536].End(xlUp).Row
For Each rng In .Range("A1:A" & EndRow)
If Adic.Exists(rng.Value) Then
If delrng Is Nothing Then Set delrng = rng.EntireRow Else Set delrng = Union(rng.EntireRow, delrng)
Else
Adic(rng.Value) = ""
End If
Next
delrng.Delete
End With
End Sub