VBAExcel-实例系列-06-求两个数组的差集
展开全文
excel数组函数的实例系统:Windows 10
软件:Excel 2010
∙这个系列说一些使用Excel/VBA具体的一些实例
∙今天讲讲如何获得两个数组的差集,要求两个数组本身无重复元素
∙差集:A-B,即在数组A中而不在数组B中的元素
今日歌曲:
Part 1:逻辑过程
1.数组差集A-B
2.数组A与B的交集,假设为C
3.求在数组A中而不在数组C中的元素,即为差集
4.其实不用求交集,直接求在数组A而不在数组B中的元素,即为差集
5.10000点尴尬,不过文章写到这里啦,先按照这个笨方法来,哈哈
6.其中funIntersection为求交集函数,参考
VBA/Excel-实例系列-04-求两个数组的交集
Part 2:代码
Function funAMinusB(array1, array2) Rem>>求数组1和数组2的差集 Rem>> Dim arrayInter Dim array3() Dim lenA Dim i Dim val1 Dim pos Dim maxNum Dim FlagError lenA = 0 On Error Resume Next Err.Clear arrayInter = funIntersection(array1, array2) '判断数组是否为空 FlagError = UBound(arrayInter) If Err.Number <> 0 Then '判断是否为空数组 funAMinusB = array1 Else maxNum
= UBound(array1) For i = 0 To maxNum Step 1 val1 = array1(i) pos = Application.Match(val1, arrayInter, 0) If IsError(pos) Then '未到 ReDim Preserve array3(lenA) array3(lenA) = val1 lenA = lenA 1 End If Next i funAMinusB = array3 End If End Function
Part 3:调用该函数
array1 = Array('张三', '李四', 1, 2, 3, 4, 5) array2 = Array(7) array1_2 = funAMinusB(array1, array2)
执行结果
以上为本次的学习内容,下回见
本文为原创作品,如若转载请标明出处,如发现有错误,欢迎留言指出
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论