Dim i As Integer, j As Integer, k As Integer, l As Integer
i = ActiveSheet.PivotTables(1).TableRange2.Rows.Count + 1
j = ActiveSheet.PivotTables(1).TableRange2.Columns.Count
k = ActiveSheet.PivotTables(1).TableRange2.Rows.Count - 7
For l = 2 To j
Cells(i + 2, l).Value = WorksheetFunction.SumIf(Range(Cells(9, l), Cells(i, l)), ">0", Range(Cells(9, l), Cells(i, l)))
Next l
嗨,我正在尝试在vba中使用sumif函数。关键是要在循环中执行此操作,这取决于列数。我现在实际上并没有出现什么问题,但我认为可能存在我采取的标准。我想对所有数字大于0的单元格求和,不知道如何写这个。
答案 0 :(得分:0)
使用以下功能。无需使用“*”进行比较
Cells(i + 2, l).Value = Aplication.WorksheetFunction.SumIf(Range(Cells(9, 2), Cells(i, 2)), "> 0", Range(Cells(9, 2), Cells(i, 2)))
答案 1 :(得分:-1)
如果在您的SumIf
中使用的是您要与标准(>0
)进行比较的范围,也可以作为要汇总的范围,则无需在SumIf
内添加它作为第三个论点。
您可以使用以下代码:
For l = 2 To j
Cells(i + 2, l).Value = WorksheetFunction.SumIf(Range(Cells(9, l), Cells(i, l)), ">0")
Next l