Function 取不重复值个数(Rng As Range)
Application.Volatile
Dim Mr As Range
Dim X As Integer, K As Integer
X = Application.CountA(Rng)
For Each Mr In Rng
If Application.WorksheetFunction.CountIf(Rng, Mr) > 1 Then
K = K + 1
End If
Next Mr
取不重复值个数 = X - (K / 2)
End Function
Function OnlyCount(rng)
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
For Each r In rng
d(r.Value) = ""
Next
OnlyCount = d.Count
End Function
Function 不重复个数(rg As Range)
Dim d, Arr, ar
Arr = rg
Set d = CreateObject("scripting.dictionary")
For Each ar In Arr
d(ar) = ""
Next ar
不重复个数 = d.Count
End Function