在Excel 2013中使用Range()和数组公式

我有一个VBA公式,比方说

Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaArray = "=MATCH(RC[-1],Sheet1!C1,0)" 

当我运行macros时,它将进入每个单元格

 =MATCH(A2,Sheet1!A:A,0) 

我想RC[-1]参数返回单元格A2,A3,A4等,它现在返回所有行的A2。 我该怎么做呢?

我也试过ActiveCell.FormulaArray和一个for循环,但是对于我所拥有的行数太慢了。

正如所有评论中所述:

您需要先将其input到B2中,然后再填充到底部。

.FormulaArray将把它看作如果你突出显示整个范围,并将公式放在第一个单元格中,然后按下Ctrl-Shift-Enter,它将在所有单元格中input相同的公式。

 Range("B2").FormulaArray = "=MATCH(RC[-1],Sheet1!C1,0)" Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row).FillDown 

尝试将FormulaArray更改为FormulaR1C1

 Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaR1C1 = "=MATCH(RC[-1],Sheet1!C1,0)" 

谢谢!!!