'单列去重非全部,如果是全部把d.removeall去除 Option Explicit Sub abc() Dim i, j, a, d, m a = [a1].CurrentRegion.Value Set d = CreateObject("scripting.dictionary") For j = 1 To UBound(a, 2) For i = 1 To UBound(a) If Len(a(i, j)) Then If d.exists(a(i, j)) Then a(i, j) = Empty Else m = m + 1: d(a(i, j)) = 1 a(m, j) = a(i, j) If i > m Then a(i, j) = Empty End If End If Next m = 0: d.RemoveAll Next [a1].CurrentRegion = a End Sub