在VBA中使用for循环的Sumif条件

时间:2016-12-16 13:02:08

标签: vba excel-vba for-loop sumifs excel

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的单元格求和,不知道如何写这个。

2 个答案:

答案 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