基于条件在vba中添加行和列
我有一些数据,我试图计算每个月1-15日的每个变量的总和,然后是每月剩余的天数。 数据出现在名为“数据”的表中,如下所示基于条件在vba中添加行和列,vba,excel,Vba,Excel,我有一些数据,我试图计算每个月1-15日的每个变量的总和,然后是每月剩余的天数。 数据出现在名为“数据”的表中,如下所示 Var 1-Jan 2-Jan 3-Jan 4-Jan 5-Jan 6-Jan 7-Jan 8-Jan 9-Jan 10-Jan 11-Jan 12-Jan 13-Jan 14-Jan 15-Jan 16-Jan... var1 8 4 14 18 1 12 36 18 38 37 11 43
Var 1-Jan 2-Jan 3-Jan 4-Jan 5-Jan 6-Jan 7-Jan 8-Jan 9-Jan 10-Jan 11-Jan 12-Jan 13-Jan 14-Jan 15-Jan 16-Jan...
var1 8 4 14 18 1 12 36 18 38 37 11 43 5 30 40 1
var2 29 39 40 10 12 21 27 31 10 21 5 14 14 33 17 13
var3 46 27 5 32 4 28 8 15 46 19 19 24 44 15 25 20
var4 5 46 27 21 10 19 26 34 38 38 33 16 23 2 26 8
var5 25 8 32 37 45 13 45 45 42 31 10 4 8 46 30 20
这些数据是全年的,但我正在尝试一月到三月的时间。输出为“摘要”页,格式应为
Var jan 1-15 jan 15-31 feb 1-15 feb 16-28 mar 1-15 mar 15-31
var1 sum sum sum sum...
var2 sum...
var3
var4
var5
我试着像这样编写vba代码
Sub sum_data()
Dim flag1, flag2, k, sum
Dim arr As Variant
arr = Array(2, 15, 16, 15, 13, 15, 16)
flag1 = arr(0)
For i = 2 To 7
Sheets("data").Select
flag2 = flag1 + arr(i-1) - 1
For j = 2 To 5
sum = Application.sum(Range(Cells(j, flag1), Cells(j, flag2)))
Sheets("summary").Select
Cells(j, i) = sum
Next j
flag1 = flag2 + 1
Next i
End Sub
请帮助我找到更好的方法。代码中有一个错误,您在第一次求和时选择了“汇总”表,但在第二次求和时,您没有切换回其他表 这是一种更好的方法,无需在图纸之间切换:
For i = 2 To 7
flag2 = flag1 + arr(i - 1) - 1
For j = 2 To 5
sum = Application.sum(Sheets("data").Range(Cells(j, flag1), Cells(j, flag2)))
Sheets("summary").Cells(j, i) = sum
Next j
flag1 = flag2 + 1
Next i
希望这有帮助。6}。arr是一个从零开始的索引。e、 g.{0-6}不是{1-9}