不知道这样写是否符合你的意思:
Sub 测试()
Set dic = CreateObject("scripting.dictionary")
arr = Range("b10:k50")
For k = LBound(arr, 1) To UBound(arr, 1)
For m = LBound(arr, 2) To UBound(arr, 2)
If Not dic.exists(arr(k, m)) Then
dic(arr(k, m)) = 1
Else
dic(arr(k, m)) = dic(arr(k, m)) + 1
End If
Next m
Next k
For k = LBound(arr, 1) To UBound(arr, 1)
For m = LBound(arr, 2) To UBound(arr, 2)
If dic(arr(k, m)) = 1 Then
arr(k, m) = ""
Else
dic(arr(k, m)) = 1
End If
Next m
Next k
Range("b10:k50") = arr
End Sub