vba两集合的交、并、补集
2017-11-20 10:33
281 查看
有两列数据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
用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 个 List 集合数据求并、补集操作
- 集合类:VBA集合对象的安全包装
- 集合的交叉并补集的操作
- 表格集合中的循环与对单元格边框的设置(VBA)
- VBA示例集合
- 集合运算符之全集、交集、补集【weber出品必属精品】
- VBA中集合collection方法的基础知识
- 求集合的交并补集
- 输入集合A、B和全集C,求两集合的交集、并集、补集、差集
- Excel VBA 学习总结 - 简论集合
- python 集合set的创建,更改,遍历,元算合并,交集,补集
- 集合中的(交集,并集,差集,补集,对称差集)
- 【VBA编程】10.自定义集合
- UserAccessList 集合的功能(VBA)
- grep和map计算两个集合交集、并集、补集
- 集合:求A、B两个集合的交集、并集和补集的代码(C语言)
- 求两个集合的交集,补集,并集
- 集合的交叉并补集的操作
- VBA 字典与集合(Dictionary与Collection)
- 数据结构(线性结构习题)Problem A: 求集合的交并补集