我试图将两个非连续的列放入二维数组中,所以:
源范围如下所示:
a 1 apple
b 2 banana
c 3 pear
d 4 orange
e 5 grape
我希望我的数组看起来像这样:
指数1- [一个, 苹果]
指数2- 并[b, 香蕉]
指数3- [C, 梨]
等
我正在使用它:
vArr = Application.index(Range("A:AU"), [row(2:30)], Array(1, 4))
这很好用,除了我总是要硬编码我的最后一行。我想要这个:
vArr = Application.index(Range("A:AU"), [row(2:<lastRow>)], Array(1, 4))
这根本不起作用。我假设我不能使用变量来表示索引函数中的run_num。如果我为row_num输入一个0,它将只返回一列上的整行。一旦我为非连续的cols放入数组,它就会失败。
有人对我有任何建议吗?
答案 0 :(得分:0)
所以我想通了,想要为其他想知道的人发布答案:
Application.index(.Value2, _
.Worksheet.Evaluate("ROW(" & .Columns(1).Address & ")-1"), _
Array(1, 4))
根据以下评论:
这是我在原始请求中要求的答案的更好表示:
vArr = Application.index(Range("A:AU"), Application.Evaluate("Row(2:" & lastRow & ")"), Array(1, 4))