在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)"
谢谢!!!