缩短代码范围数组元素

shorten code range array elements

如何缩短此代码? 我还对一系列数组元素尝试了 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)

您可以使用 SUMINDEX 对整个数组的 r'th row 求和,如下所示:

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