VBA Sumifs 将结果粘贴为值

VBA Sumifs to paste result as values

想知道如何正确编写 SUMIFS 公式并将结果粘贴为值。 是否也可以只在空白单元格上使用公式循环?我尝试了 运行 代码,它似乎是为所有单元格粘贴了公式。 我附上了一个示例代码,我只是从其他论坛获得的,以供参考。非常感谢你们的帮助!

Option Explicit

Sub SumGroups()
    Dim lastCode As Long, lastFiltCode As Long

    'Determine Last Row in Column O (Unfiltered Codes)
    With Worksheets("Database")
        lastCode = .Range("O" & .Rows.Count).End(xlUp).Row
    End With

    With Worksheets("Sheet3")
        'Determine last Row in Column A (Filtered Codes)
        lastFiltCode = .Range("A" & .Rows.Count).End(xlUp).Row

        .Range("B2:K" & lastFiltCode).Formula = _
            "=SUMIFS(Database!$M:$M$" & lastCode & ",Database!$O:$O$" & lastCode & ",$A2,Database!$I:$I$" & lastCode & ",B)"
    End With

End Sub

您只需要在 VBA:

内完成工作
cells(1,1).value = Application.SumIfs(Range(Cells(1,1),Cells(10,1)),Range(Cells(1,2),Cells(10,2)), "<0")

或者,您可以在显示公式后执行此操作,以便粘贴公式的值来代替公式:

cells(1,1).value = cells(1,1).value

编辑 1:

通过使用 .Formula = "" 指出您的代码输入公式的原因,您是在告诉系统在定义的范围内显示准确的信息。这些每个输入单元格引号内的任何内容:

cells(1,1).value = "Cat"
cells(1,1).formula = "=A1+B1"
cells(1,1).formula = "=A" & i & "+B" & i 'where i is a variable