我没有找到任何东西。我想要实现的是根据另一个数组[n x 3]
过滤掉m x 1
数组
让我们说:
arr1 = [n x 3] 'where n is roughly 500'000
arr2 = [m x 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"
的所有记录。然后将过滤后的数组粘贴到工作表
答案 0 :(得分:1)
向arr1添加一个额外字段 arr1是[n x 4]
将额外字段设置为初始化为False
逐步执行arr2,对于arr2中的每个ID,将arr1中的相应条目设置为True,例如: 如果我们在arr2中找到ID23,并且我们在arr1(x,1)的arr1中找到ID23,则设置arr1(x,4)= True
一次将arr1复制到新数组行,仅复制arr1(x,4)= False
您也可以考虑使用类而不是多维数组。然后,您可以构建集合并使用For Each来逐步完成它们。这可以更快地运行,并且可以更轻松地添加新字段。