VBA:基于另一个数组的filter数组
我没有find任何东西。 我想要实现的是过滤出一个基于另一个数组mx 1
的[nx 3]
数组
让我们这样说:
arr1 = [nx 3] 'where n is roughly 500'000 arr2 = [mx 1] 'where m is roughly 500
arr1
的结构是这样的:
arr1(1,1) = ID1 | arr1(1,2) = String1 | arr1(1,3) = Bolean1 arr1(2,1) = ID2 | arr1(2,2) = String2 | arr1(2,3) = Bolean2
arr2
它的结构是这样的:
arr2 (1) = ID2 | arr2 (2) = ID23 | arr2 (3) = ID345 | arr2 (4) = ID4567 | arr2 (5) = ID6381
我需要做的是过滤arr1
排除arr1(i,1)
包含在arr2
和arr1(i,2) <> "String2"
。 然后将过滤的数组粘贴到工作表上
添加一个额外的字段arr1 arr1是[nx 4]
-
使额外的字段布尔初始化为False
-
通过arr2,arr2中的每个ID,将arr1中的对应条目设置为True,例如,如果我们在arr2中发现ID23,并且在arr1(x,1)处发现arr1中的ID23,则设置arr1(x,4)= True
-
将arr1复制到新的数组行,只复制arr1(x,4)= False的项目
你也可以考虑使用一个类而不是multidimensional array。 然后,您可以构build集合并使用For Each来逐步完成它们。 这可以更快地运行,并使添加新的域更容易。