美文网首页
44、[VBA入门到放弃笔记] 字典联合数据(Textjoin)

44、[VBA入门到放弃笔记] 字典联合数据(Textjoin)

作者: 叶知行 | 来源:发表于2017-07-05 10:22 被阅读62次
1
Sub cdsr()
    Dim d, ar
    Set d = CreateObject("Scripting.Dictionary")
    ar = [a1].CurrentRegion'数组赋值
    For i = 2 To UBound(ar)'遍历数组
        If Not d.exists(ar(i, 1)) Then'如果字典里不存在
            d(ar(i, 1)) = ar(i, 2)'放进字典
        Else'如果存在,用逗号链接起来
                d(ar(i, 1)) = d(ar(i, 1)) & "," & ar(i, 2)
        End If
    Next
'输出字典数据
   [d2].Resize(d.Count, 2) = Application.Transpose(Array(d.keys, d.items))
End Sub
没去重结果
  • 上面的代码是没有去重复的。
Sub cdsr()
    Dim d, ar
    Set d = CreateObject("Scripting.Dictionary")
    ar = [a1].CurrentRegion
    For i = 2 To UBound(ar)
        If Not d.exists(ar(i, 1)) Then
            d(ar(i, 1)) = ar(i, 2)
        Else
'判断姓名是否重复,不重复就用逗号连接起来,instr函数用法自行百度
            If InStr(d(ar(i, 1)), ar(i, 2)) = 0 Then
                d(ar(i, 1)) = d(ar(i, 1)) & "," & ar(i, 2)
            End If
        End If
    Next
    [d2].Resize(d.Count, 2) = Application.Transpose(Array(d.keys, d.items))
End Sub
最终结果

相关文章

网友评论

      本文标题:44、[VBA入门到放弃笔记] 字典联合数据(Textjoin)

      本文链接:https://www.haomeiwen.com/subject/pkbfhxtx.html