arrays - 在所述数组的列中聚合二维数组的一部分
问题描述
我有一个二维数组,具有灵活的尺寸:
arr_emissions(1 to n, 0 to m)
其中n
22 或更大,并且m
6 或更大。
在最小的情况下,列m = 6
应该包含列的总和m = 2 - 5
。我当然可以简单地添加它们,但由于数组的维度是灵活的,我想实现一个更健壮的方法,它最好不要循环整个数组。
我希望实现原生的application.WorksheetFormula.Sum()
. 我在这个答案中看到了一个实现,但这仅适用于完整的行或列。
示例:
我有arr_emissions(0 to 111,1 to 6)
. 它填充在从 1 到 111 的循环中。
数组中的数据如下:
(1,1) #3-4-2020# 'a date value
(1,2) 1,379777
(1,3) 0
(1,4) Empty
(1,5) Empty
解决方案
不知道这是否有帮助,但这需要一个源数组v
,然后w
用对应行的 2-4 列的总和填充一个新数组v
。
Sub x()
Dim v, i As Long, w()
'just to populate source array
v = Range("A1").CurrentRegion.Value
ReDim w(1 To UBound(v, 1))
For i = 1 To UBound(w)
'each element of w is sum of columns 2-4 of corresponding row of v
w(i) = Application.Sum(Application.Index(v, i, Array(2, 3, 4)))
Next i
'write w to sheet
Range("G1").Resize(UBound(w)) = Application.Transpose(w)
End Sub
推荐阅读
- node.js - 如何从节点服务器获取数据
- servlets - 如何动态改写 Jetty 的 URL 处理规则?
- javascript - 尽管调用了 promise resolve(),但异步函数不返回
- sql - 通配符 % 不能按预期工作
- javascript - 从类实例实例化新类
- if-statement - 如果所有非空值都相同,则返回值的公式,否则返回空?
- php - PHP多维数组:删除外部数组,删除索引键和用逗号分隔的剩余数组
- java - 这个回报有什么问题?
- android - Ionic 4 - 安装运行执行完整的构建和安装,因为设备上的安装与磁盘上的本地构建不匹配
- pdflib - PDFlib - 围绕中心旋转任意角度的对象