【发布时间】:2017-09-20 20:04:21
【问题描述】:
我需要将一系列单元格放入一个数组中,这本身就很简单:
Dim matchArray As Variant
matchArray = Sheets(lookupSheet).Range("B2:B12000").Value2
这将创建一个二维数组,其中一列作为第二维,如果您扩展范围以包含第二列,它会创建一个二维数组,其中第二维包含两列:
matchArray = Sheets(lookupSheet).Range("B2:C12000").Value2
但是如果两列不相邻并且您不希望中间的那一列怎么办?
matchArray = Sheets(lookupSheet).Range("B2:B12000,D2:D12000").Value2
以上是我最好的猜测,但它不起作用,它只返回指定的第一个范围。
所以我需要一种将范围单元格值返回到数组的特定维度的方法。
我知道我可以通过循环遍历行来做到这一点,但是对于我要处理的行数来说,这将花费很长时间。
【问题讨论】:
-
“这会创建一个一维数组”——但它不会。它创建了一个只有 1 列的二维数组。
-
为了扩展@JohnColeman 的评论,您将创建一个二维数组,其中 first rank 为 1 到 11999,second rank 为 1 到 1 b>.
-
你试过
Union吗?