我有一些数据,我试图计算每个月的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 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
数据是全年的,但我正在尝试jan-march持续时间。输出在表格"摘要"并且格式应为
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
请帮助我找到更好的方法。
答案 0 :(得分:1)
您在代码中选择了"摘要"在第一笔金额中填写,但在第二次你想要总和时,不要切换回另一张。
这是一种更好的方法,无需实际切换工作表:
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
希望这有帮助。