ALT+F11,在VBE窗口中插入模块,粘贴以下代码。
回到Excel界面,ALT+F8,运行下面这个宏。
Sub 这个宏()
Dim Arr, d As Object, Brr(), crr, sh As Worksheet
t = Timer
Arr = ActiveSheet.[a1].CurrentRegion
ReDim Brr(1 To UBound(Arr, 1), 1 To UBound(Arr, 2))
Set d = CreateObject("scripting.dictionary")
For i = 1 To UBound(Arr, 1)
For j = 1 To UBound(Arr, 2)
If Arr(i, j) <> "" Then d(Arr(i, j)) = ""
Next j
crr = d.keys
For j = 0 To UBound(crr)
Brr(i, j + 1) = crr(j)
Next
d.RemoveAll
Next i
Set sh = Worksheets.Add(after:=Worksheets(Worksheets.Count))
sh.Name = "去重结果"
sh.[a1].Resize(UBound(Arr, 1), UBound(Arr, 2)) = Brr
MsgBox "处理完成!用时" & Timer - t & "秒!"
End Sub
这个问题用VBA应该容易一些,方便的话,发文件给我。我写个代码。