在 Excel 2013 中将 Range() 与数组公式结合使用
Using Range() with array formulas in Excel 2013
我有一个VBA公式,比方说
Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaArray = "=MATCH(RC[-1],Sheet1!C1,0)"
当我 运行 宏进入每个单元格时
=MATCH(A2,Sheet1!A:A,0)
我想要 return 单元格 A2、A3、A4 等的 RC[-1]
参数。目前所有行都在 returning A2。我该怎么做?
我也尝试了 ActiveCell.FormulaArray
和 for 循环,但对于我拥有的行数来说它太慢了。
尝试将 FormulaArray
更改为 FormulaR1C1
Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaR1C1 = "=MATCH(RC[-1],Sheet1!C1,0)"
谢谢!!!
如所有评论所述:
需要先填入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
我有一个VBA公式,比方说
Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaArray = "=MATCH(RC[-1],Sheet1!C1,0)"
当我 运行 宏进入每个单元格时
=MATCH(A2,Sheet1!A:A,0)
我想要 return 单元格 A2、A3、A4 等的 RC[-1]
参数。目前所有行都在 returning A2。我该怎么做?
我也尝试了 ActiveCell.FormulaArray
和 for 循环,但对于我拥有的行数来说它太慢了。
尝试将 FormulaArray
更改为 FormulaR1C1
Range("B2:B" & Cells(Rows.Count, "A").End(xlUp).Row).FormulaR1C1 = "=MATCH(RC[-1],Sheet1!C1,0)"
谢谢!!!
如所有评论所述:
需要先填入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