我有一个VBA公式,让我们说
Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaArray = "=MATCH(RC[-1],Sheet1!C1,0)"
当我运行宏时,它会将其输入每个单元格
=MATCH(A2,Sheet1!A:A,0)
我希望RC[-1]
参数返回单元格A2,A3,A4等。它当前为所有行返回A2。我该怎么做?
我也尝试了ActiveCell.FormulaArray
和for循环,但它对于我的行数来说太慢了。
答案 0 :(得分:1)
尝试将FormulaArray
更改为FormulaR1C1
Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaR1C1 = "=MATCH(RC[-1],Sheet1!C1,0)"
感谢!!!
答案 1 :(得分:1)
如所有评论中所述:
您需要先将其输入B2,然后填入底部。
.FormulaArray
会将其视为突出显示整个范围并将公式放在第一个单元格中,然后按Ctrl-Shift-Enter键输入所有单元格中的相同公式。
Range("B2").FormulaArray = "=MATCH(RC[-1],Sheet1!C1,0)"
Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row).FillDown