使用Macro的INDEX公式的语法错误

时间:2016-04-29 17:53:00

标签: excel vba excel-vba excel-formula

当我尝试使用Macro在单元格中插入公式时,我收到语法错误。我似乎无法弄清楚我做错了什么?手动输入时,该公式正常。这是我的代码:

ws3.Range("F2:F" & lastRow3).Formula = "=INDEX($L$1:INDEX(L:L,MATCH("ZZZ",D:D)),AGGREGATE(15,6,ROW($K$1:INDEX(K:K,MATCH("ZZZ",D:D)))/($K$1:INDEX(K:K,MATCH("ZZZ",D:D))=D2),COUNTIF($D$1:$D2,D2)))"

ws3是工作表,而lastRow3只是通过与左边的列进行比较来自动填充内容。任何想法为什么会出错?

仅供参考:此公式是在另一列的一列中查找值并给出相邻的条目。

1 个答案:

答案 0 :(得分:1)

填写完整范围时,最好使用R1C1格式。

使用vba设置最后一行也没有理由让所有INDEX(L:L,MATCH("ZZZ",D:D))找到最后一行,因为代码本身可以直接设置它。

使用此:

ws3.Range("F2:F" & lastRow3).FormulaR1C1 = _
    "=INDEX(R1C12:R" & lastrow & "C12,AGGREGATE(15,6,ROW(R1C11:R" & lastrow & "C11)/(R1C11:R" & lastrow & "C11=RC[-2]),COUNTIF(R1C4:RC4,RC[-2])))"