查看: 20  |  回复: 0
  VBA代码 单列去重
楼主
发表于 2025年3月18日 10:11
Public Sub 单列去重(sr As Range, tr As Range)    'sr向下扩展的单列去重输出到tr
    Dim i&, arr, s, keys
    Dim dic
    Set sr = Range(sr, sr.End(xlDown))
    arr = sr
    Set dic = CreateObject("scripting.dictionary")
    
    For i = 1 To UBound(arr)    '去重
        If arr(i, 1) <> "" Then
            If Not dic.Exists(arr(i, 1)) Then dic.Add arr(i, 1), Nothing
        End If
    Next
    
    ReDim arr(0 To dic.Count - 1, 0)
    keys = dic.keys
    
    For i = 0 To dic.Count - 1
        arr(i, 0) = keys(i)
    Next
    tr.Resize(dic.Count) = arr
End Sub


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2025 MaNongKu.com