缩短代码范围数组元素
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)
您可以使用 SUM
和 INDEX
对整个数组的 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
如何缩短此代码?
我还对一系列数组元素尝试了 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)
您可以使用 SUM
和 INDEX
对整个数组的 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