为row_num application.index使用variables

我试图把两个不连续的列变成一个二维数组,所以:

源范围如下所示:

a 1 apple b 2 banana c 3 pear d 4 orange e 5 grape 

我想我的数组看起来像这样:

索引1- [a,苹果]

指数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)) 

这根本不起作用。 我假设我不能使用一个variables来表示索引函数中的run_num。 如果我把0放入row_num,它将只返回一列上的整个行。 只要我把数组放入非连续的cols,它就会失败。

有没有人对我有任何build议?

所以我想出来了,想给其他人想知道的答案:

 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))