|
发表于 2014-4-14 22:46
|
显示全部楼层
本楼为最佳答案
本帖最后由 香川群子 于 2014-4-14 22:57 编辑
一个自定义函数彻底解决。
包含k=0 补集 k=1 交集 k=2 并集 k=-1 差集 四种集合比较运算:
- Function jhys(A, B, Optional k = 1) '集合运算 的拼音首字母
- 'k=0 补集 k=1 交集 k=2 并集 k=-1 差集
-
- Dim c(99)
- s = Split(A)
- For i = 0 To UBound(s)
- c(s(i)) = s(i)
- Next
-
- s = Split(B)
- If k = 0 Then '返回1-99的补集
- For i = 0 To UBound(s)
- c(s(i)) = s(i)
- Next
- For i = 1 To 99
- If c(i) = 0 Then t = t & " " & Right(0 & i, 2)
- Next
- ElseIf k = 1 Then '返回AB交集(AB都含有)
- For i = 0 To UBound(s)
- If c(s(i)) Then t = t & " " & s(i)
- Next
- ElseIf k = 2 Then '返回AB并集(A或B含有)
- For i = 0 To UBound(s)
- c(s(i)) = s(i)
- Next
- For i = 1 To 99
- If c(i) Then t = t & " " & Right(0 & i, 2)
- Next
- ElseIf k = -1 Then '返回A-B差集(A含B不含)
- For i = 0 To UBound(s)
- If c(s(i)) Then c(s(i)) = 0
- Next
- For i = 1 To 99
- If c(i) Then t = t & " " & Right(0 & i, 2)
- Next
- End If
- jhys = Mid(t, 2)
- End Function
复制代码 |
|