|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
我的目的是比较A列、D列两列中的数据异同,用 Filter 函数将数组arr2与数组arr1重复的数值去除后,重置数组arr2,
Private Sub zxbd_Click()
Dim arr1, arr2
arr1 = Array("1", "2", "3", "4")
arr2 = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12")
For i = 0 To UBound(arr1)
arr2 = Filter(arr2, arr1(i), False, 1)
Next i
MsgBox "不同:" & Join(arr2)
End Sub
上面的代码运行后,msgbox框显示的是:5 6 7 8 9
按理应该显示的是:5 6 7 8 9 10 11 12
高手帮帮忙,为何如此?谢谢!
另外,Filter 函数不支持区域赋值的数组吗?如将上面代码改为:
Private Sub zxbd_Click()
Dim arr1, arr2
arr1 = Range([A2], Cells(Rows.Count, 1).End(xlUp)).Value ' 此区域的值是:1、2、3、4
arr2 = Range([D2], Cells(Rows.Count, 4).End(xlUp)).Value ' 此区域的值是:1、2、3、4、5、6、7、8、9、10、11、12
For i = 0 To UBound(arr1)
arr2 = Filter(arr2, arr1(i), False, 1)
Next i
MsgBox "不同:" & Join(arr2)
End Sub
以上代码运行后出错,提示:运行错误9,下标越界,提示 arr2 = Filter(arr2, arr1(i), False, 1) 运行错误
请高手指教,谢谢!
|
|