看代码:Sub MyNZsz_28() '第28讲 两列数中数组重复的值提取 【代码见教程】End Sub代码截图: 代码讲解:1) r = -1 For i = 1 To UBound(temvarArr2) Temp = Filter(temvarArr1, temvarArr2(i), True) If UBound(Temp) >= 0 Then r = r + 1 ReDim Preserve arr(r) arr(r) = temvarArr2(i) End If Next For i = 1 To UBound(temvarArr1) Temp = Filter(temvarArr2, temvarArr1(i), True) If UBound(Temp) >= 0 Then r = r + 1 ReDim Preserve arr(r) arr(r) = temvarArr1(i) End If Next上述代码的过程实现了在两个数组中分别查找重复的值并计入一个新的数组。2) ReDim sparr(0) sparr(0) = arr(0) For i = 1 To r Temp = Filter(sparr, arr(i), True) If UBound(Temp) < 0 Then t = t + 1 ReDim Preserve sparr(t) sparr(t) = arr(i) End If Next上述代码的过程执行后把新的数组进行了排重。 特别注意点:a 关于利用数组的排重,我在最近的讲解中总有,可以作为一个固定的模式来记住。b 关于查找相同值的问题利用Filter 函数的意义不是很大,因为这个是模糊查找,往往不是我们所需要的,所以在利用的时候要注意分清利用的范围。c 数组的建立和转换要留意我的代码,我先后利用了很多的方法。 下面看代码的运行结果: 今日内容回向:1 关于数组的Filter 函数 是否理解了呢?2 如果在上述的数据中,如A列的数据增加一个1,会在第三列出现吗?会在第四列出现吗? 我20多年的VBA实践经验,全部浓缩在下面的各个教程中:【分享成果,随喜正能量】如果有人一直说个不停,你完全插不上话,掉个东西到地上(钥匙,笔之类的),你弯腰下去捡,然后开始说话。这样,你就可以神不知鬼不觉的打断对方,并且不被他发现。