系统:Windows 10
软件:Excel 2010
这个系列说一些使用Excel/VBA具体的一些实例
今天讲讲如何获取数组中所含的唯一值,即集合
今日歌曲:
相关文章:
在上次的实例中,求两个数组的交集,造一个轮子,但是要求输入数组内元素没有重复值
今天就由已知数组,获取对应的无重复值数组
待求解数组1,输出数组2
首先将数组1中的第一个值赋给数组2
对数组1的其它值进行循环
不在数组2中,则数组2中增加该值,否则不增加
Function funOnlyValue(array1) Rem>>求某一数组中的唯一值 Rem>>利用动态数组实现 Rem>>要求数组不为空 Rem>> Dim maxNum Dim array2() Dim val1 Dim count2 Dim i Dim pos maxNum = UBound(array1) If maxNum = 0 Then '一个元素求集合是其本身 funOnlyValue = array1 Else ReDim Preserve array2(0) array2(0) = array1(0) count2 = 0 For i = 1 To maxNum Step 1 val1 = array1(i) pos = Application.Match(val1, array2, 0) If IsError(pos) Then count2 = count2 1 ReDim Preserve array2(count2) array2(count2) = val1 End If Next i funOnlyValue = array2 End IfEnd Function
Sub test() Rem>> Dim array1() Dim array2() Dim array11() Dim array22() array1 = Array('张三', '李四', 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, '张三', '李四') array2 = Array(1) array11 = funOnlyValue(array1) array22 = funOnlyValue(array2)End Sub
执行结果
注:当数组为空时,本函数会不适用,所以需提前排除空数组
以上为本次的学习内容,下回见
本文为原创作品,如若转载请标明出处,如发现有错误,欢迎留言指出
联系客服