vba两集合的交、并、补集

有两列数据A、B,求出A有B没有、B有A没有、AB都有、AB的合集:

用VBA是的字典来做:

Sub 字典法()
Dim arr1()
arr1 = Range("A2:b31").Value
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(arr1)
    d(arr1(i, 1)) = 1
Next
For j = 1 To UBound(arr1)
    d(arr1(j, 2)) = d(arr1(j, 2)) + 2
Next
ReDim arr1(1 To d.Count, 1 To 4)
i = 0: j = 0: l = 0
For Each d1 In d.keys
    If d(d1) = 1 Then  'A有B没有
        j = j + 1
        arr1(j, 1) = d1
    ElseIf d(d1) = 2 Then  'B有A没有
        l = l + 1
        arr1(l, 2) = d1
    Else                            'AB都有
       i = i + 1
       arr1(i, 3) = d1
    End If
    r = r + 1
    arr1(r, 4) = d1          'AB的合集
Next
Range("d2").Resize(d.Count, 4) = arr1
End Sub

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值