SUMIF与可变范围

我想做这个简单的代码,但我没有find任何解决scheme。

我有一个循环迭代我的工作表的所有行,并为每一次迭代,我想做一个sumif,但范围是可变的。

所以我想要这样的东西:

Dim row,MaxColumn as Integer MaxColumn = 5 For row= 1 to 5 ActiveSheet.Cells(row, MaxColumn + 1).Select ActiveCell.Formula = "=SUMIF("B2:D(here I want a variable D1 to 5 range with row variable),""=1"")" next row 

我不知道该怎么做

我知道我可以用它来select一个variables的范围,但是我不能在SUMIF上使用它。

 ActiveSheet.Range("B" & row & ":D" & row) 

你可以得到这个Range("B2:D2").Address的地址Range("B2:D2").Address
这将产生绝对范围$B$2:$D$2

你可以给它传递True / False来获取相对地址Range("B2:D2").Address(False, False)
这产生范围B2:D2

这里是一个例子:

 Dim TotalRows As Long Dim i As Long ' Get the total number of rows in the current sheet TotalRows = ActiveSheet.UsedRange.Rows.Count ' Iterate through all rows For i = 1 To TotalRows ' Set the current cells formula range to Bi:Di where i = the current row Range("A" & i).Formula = "=SUMIF(" & Range("B" & i & ":D" & i).Address(False, False) & ", 1)" Next 

或者,你可以像这样设置一个范围的公式:
Range("A1:A4").Formula = "=SUMIF(B1:D1,1)"

Excel将自动增加基于行的范围。

SUMIF示例