excel vba判断同范围内是否重复

vba判断同范围内是否重复内容(重复内容保留一个即可,非重复内容全删除)
B10:K50

不知道这样写是否符合你的意思:

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

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-05-30
sub t()
    dim dic as object
    dim arr
    set dic=createobject("scripting.dictionary")
    arr=range("B10:K50")
    for i=lbound(arr,1) to ubound(arr,1)
        for j=lbound(arr,2) to ubound(arr,2)
            if dic.exists(arr(i,j))=true then
                arr(i,j)=""
            else
                dic(arr(i,j))=""
            end if
        next
    next
    range("b10:k50")=arr
end sub

本回答被提问者采纳
相似回答