Excel VBA 中的动态参考单元格

Dynamic reference cell in Excel VBA

有没有办法让这个公式在 VBA 中动态化?

Range("A" & alastrow + 2).FormulaArray = "=IFERROR(INDEX('Data'!$D$9:$D$1642,MATCH(0,IF(B18='Data'!$G$9:$G$1642,COUNTIF(A17,'Data'!$D$9:$D$1642), """"), 0)), """")"

我希望 B18 和 A17 根据我的数据在 sheet 上的起始位置进行更改,但我不确定该怎么做。我不确定这是否重要,但数组开头之前引用的范围是 A18。有谁知道我怎么能做到这一点?谢谢。

正如一些同事试图在评论中解释的那样,您必须使用 & 运算符将公式的静态部分与变量 alastrow 连接(连接)起来。看一看:

Range("A" & alastrow + 2).FormulaArray = "=IFERROR(INDEX('Data'!$D:$D42,MATCH(0,IF(" & alastrow & "='Data'!$G:$G42,COUNTIF(" & alastrow & ",'Data'!$D:$D42), """"), 0)), """")"