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)包含在arr2arr1(i,2) <> "String2" 。 然后将过滤的数组粘贴到工作表上

添加一个额外的字段arr1 arr1是[nx 4]

  1. 使额外的字段布尔初始化为False

  2. 通过arr2,arr2中的每个ID,将arr1中的对应条目设置为True,例如,如果我们在arr2中发现ID23,并且在arr1(x,1)处发现arr1中的ID23,则设置arr1(x,4)= True

  3. 将arr1复制到新的数组行,只复制arr1(x,4)= False的项目

你也可以考虑使用一个类而不是multidimensional array。 然后,您可以构build集合并使用For Each来逐步完成它们。 这可以更快地运行,并使添加新的域更容易。