【发布时间】:2014-05-08 12:23:17
【问题描述】:
我想编写这个简单的代码,但我没有找到任何解决方案。
我有一个循环来迭代工作表的所有行,并且对于每次迭代我都想做一个 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
我不知道如何完成这个。
我知道我可以使用它来选择带有变量的范围,但我不能在 SUMIF 上使用它。
ActiveSheet.Range("B" & row & ":D" & row)
【问题讨论】:
-
将相同单元格的公式更改5次有什么意义?如果您在其他地方更改活动单元格,请向我们展示更多代码..
-
我省略了一些部分以便于理解我想要什么
-
1) How to avoid using Select/Active statements 2) 行中的
Dim row,MaxColumn as Integer变量row的类型为Variant。将其更改为Dim row as Integer,MaxColumn as Integer3) 您可以在整个范围内应用不带循环的公式:Range(A1:A5).Formula="=SUMIF(B1:D1,1)"并且 excel 会自动为每个单元格/行调整它