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

当我尝试使用macros在单元格中插入公式时,出现语法错误。 我似乎无法弄清楚我做错了什么? 当我手动input时,公式工作正常。 这是我的代码:

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只是通过比较左侧的列来自动填充内容。 任何想法,为什么这是一个错误?

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

填充全范围时,最好使用R1C1格式。

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

用这个:

 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])))"