VBA Sumifs将结果粘贴为值

时间:2018-07-27 13:08:43

标签: excel vba excel-vba copy-paste sumifs

想知道如何正确编写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$2:$M$" & lastCode & ",Database!$O$2:$O$" & lastCode & ",$A2,Database!$I$2:$I$" & lastCode & ",B$1)"
    End With

End Sub

1 个答案:

答案 0 :(得分:1)

您只需要在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

Edit1:

要指出为什么代码使用 .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