想知道如何正确编写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
答案 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