Excel 具有可变范围的SUMIF
我想编写这个简单的代码,但我没有找到任何解决方案 我有一个循环来迭代我的工作表的所有行,对于每一次迭代,我都希望生成一个sumif,但范围是可变的 所以我想要这样的东西:Excel 具有可变范围的SUMIF,excel,vba,variables,range,Excel,Vba,Variables,Range,我想编写这个简单的代码,但我没有找到任何解决方案 我有一个循环来迭代我的工作表的所有行,对于每一次迭代,我都希望生成一个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
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
我不知道如何完成这件事
我知道我可以用它来选择一个带有变量的范围,但我不能在SUMIF上使用它
ActiveSheet.Range("B" & row & ":D" & row)
您可以获得类似以下范围的地址
范围(“B2:D2”)。地址
这将产生一个绝对范围$B$2:$D$2
您可以为pass it True/False来获取相对地址范围(“B2:D2”)。地址(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
或者,您可以设置如下范围的公式:
范围(“A1:A4”)。公式=“=SUMIF(B1:D1,1)”
Excel将根据您的行自动增加范围
将同一单元格的公式更改5次有什么意义?如果您在其他地方更改活动单元格,请向我们显示更多代码。为了便于理解,我省略了一些部分1)2)在第Dim行中,MaxColumn作为整数variablerow
具有类型variable
。将其更改为Dim row as Integer,MaxColumn as Integer
3)您可以对整个范围应用公式,而无需循环:range(A1:A5)。公式=“=SUMIF(B1:D1,1)”
,excel将为每个单元格/行自动调整它