如何缩短此代码?
我还尝试了SUM
一系列数组元素,但由于我不知道正确的语法,因此无法工作。
提前谢谢。
Workbooks("items.xlsm").Sheets(1).Cells(r, 107).Value = _
arr(r, 4) + arr(r, 5) + arr(r, 6) + arr(r, 7) + arr(r, 8) + arr(r, 9)
+ arr(r, 10) + arr(r, 11) + arr(r, 12) + arr(r, 13)
+ arr(r, 14) + arr(r, 15) + arr(r, 16) + arr(r, 17)
+ arr(r, 18) + arr(r, 19) + arr(r, 20) + arr(r, 21)
+ arr(r, 22) + arr(r, 23) + arr(r, 24) + arr(r, 25)
+ arr(r, 26) + arr(r, 27) + arr(r, 28) + arr(r, 29)
+ arr(r, 30) + arr(r, 31) + arr(r, 32) + arr(r, 33)
+ arr(r, 34) + arr(r, 35) + arr(r, 36) + arr(r, 37)
+ arr(r, 38) + arr(r, 39) + arr(r, 40) + arr(r, 41)
+ arr(r, 42) + arr(r, 43) + arr(r, 44) + arr(r, 45)
+ arr(r, 46) + arr(r, 47) + arr(r, 48) + arr(r, 49)
+ arr(r, 50) + arr(r, 51) + arr(r, 52) + arr(r, 53)
+ arr(r, 54) + arr(r, 55)
答案 0 :(得分:1)
您可以使用r'th row
和SUM
将数组完全INDEX
与以下内容相加:
Workbooks("items.xlsm").Sheets(1).Cells(r, 107).Value = _
Application.Sum(Application.Index(ar, r))
但是因为你只想对行的一部分求和,所以列4到55:
Workbooks("items.xlsm").Sheets(1).Cells(r, 107).Value = _
Application.Sum(Application.Index(ar, r, [Row(4:55)]))
最简单,实现For
循环,即
Dim sum as double, i as long
For i = 4 to 55 : sum = sum + arr(r, i) : Next
Workbooks("items.xlsm").Sheets(1).Cells(r, 107).Value = sum