我试图在excel vba中构建一个高级过滤器表,如下图所示。在最后一栏中,我使用下面的数组公式。
Worksheets("Contracts").Range("N13:N" & Worksheets("contracts").Range("M" & Rows.Count).End(xlUp).Row).FormulaArray = _
"=sum(if(invoice!$A$3:$A$2000=contracts!B13,invoice!$AA$3:$AL$2000))"
我遇到的问题是它将公式复制到范围内的所有单元格而不更改单元格:contract!B13。它保持不变。 B13。
我哪里错了?
谢谢你, 丹尼尔
答案 0 :(得分:0)
你可以这样做:
lastRow = Range("M" & Rows.Count).End(xlUp).Row
For i = 13 to lastRow
Worksheets("Contracts").Range("N13:N" & i).Formula = _
"=sum(if(invoice!$A$3:$A$2000=contracts!B" & i & ",invoice!$AA$3:$AL$2000))"
Next