尝试使用 SUMIFS 汇总数据库 - VBA

Trying to summarize a database using SUMIFS - VBA

'数据库中的行数每个月都在变化,因此变量 lastCode。 '当我手动将最后一行放入 $M510$O510 时,代码运行没有问题,但是当我将变量 & lastCode 放入 SUMIFS 时,我收到错误

Run-time '1004'application-defined or object defined.

请告诉我下面代码中的 SUMIFS 有什么问题。

Sub SumGroups()
    Worksheets("Database").Activate
    Dim lastCode, lastFiltCode As Integer
    Dim Formula As String
    'Determine Last Row in Column O (Unfiltered Codes)
    lastCode = Range("O" & Rows.Count).End(xlUp).Row
    'Filter Unique Codes into Column A Sheet2
    Range("O1:O" & lastCode).AdvancedFilter Action:=xlFilterCopy, _
        CopyToRange:=Sheet2.Range("A1"), Unique:=True
    'Determine last Row in Column A (Filtered Codes)
    Worksheets("Sheet2").Activate
    lastFiltCode = Sheet2.Range("A" & Rows.Count).End(xlUp).Row

    'Place SUMIF Formula in Column B Sheet2

    Worksheets("Sheet2").Range("B2:B" & lastFiltCode).Formula = _
        "=SUMIFS(Database!$M:$M$ & lastCode,Database!$O:$O$ & lastCode,A2)"
End Sub

您要找的是:

"=SUMIFS(Database!$M:$M$" & lastCode & ",Database!$O:$O$" & lastCode & ",A2)"

原因是当您将某些内容放入 "quotation marks" 时,VBA 会将其读取为纯文本,您可以使用 Debug.Print "=SUMIFS(Database!$M:$M$ & lastCode,Database!$O:$O$ & lastCode,A2)" 并按 Ctrl + G 或在 VBA select "View" > "Immidiate Window" 它会告诉你 Excel

到底发生了什么