【发布时间】:2017-02-02 10:23:03
【问题描述】:
我在 VBA 中有 3 个范围:
range1 = Range("A:A")
range2 = Range("B:B")
range3 = Range("C:C")
我想返回一个新范围,将三个范围中的每一行加在一起。
如果我有数据
A, B, C
=========
1, 2, 3
2, 4, 5
1, 1, 2
其中 3 个范围中的每一个仅包含值(列名仅用于解释)。所以第一个范围的值是 1、2、1,第二个范围的值是 2、4、1,第三个范围的值是 3、5、2。
我想输出包含的范围
6
11
4
我猜是这样的
Dim newRange As Range
Dim RowNo As Long
// make newRange as long as one of the other ranges
For Each RowNo in LBound(newRange)
newRange(RowNo).Value = range1(RowNo).Value + range2(RowNo).Value + range3(RowNo).Value
Next RowNo
// return newRange
这对吗?
【问题讨论】:
-
为什么不直接使用 SUM 公式?
-
这是一个更大的 vba 代码,我不能在工作表中找到总和,所以我必须在 VBA 中完成
-
只要您的范围对齐并且大小相同,那么这种方法就非常好。
-
我不需要标注 newRange 的尺寸吗?