缩短代码范围数组元素

时间:2017-07-22 18:53:31

标签: arrays vba excel-vba sum addition

如何缩短此代码? 我还尝试了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)

1 个答案:

答案 0 :(得分:1)

您可以使用r'th rowSUM将数组完全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