当我尝试使用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只是通过与左边的列进行比较来自动填充内容。任何想法为什么会出错?
仅供参考:此公式是在另一列的一列中查找值并给出相邻的条目。
答案 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])))"