如下图所示

在excel中可以使用合并计算功能将多个单元格区域进行汇总计算,在进行合并计算时,首先添加要合并计算的单元格区域,然后选择汇总方式,可以设置标签位置是在首行、还是最左列。
如果要在vba中使用这一功能,可以使用Range对象的Consolidate方法。
合并计算的录制宏代码如下:
Sub 宏1()
'
' 宏1 宏
'
Selection.Consolidate Sources:=Array("[工作簿1]Sheet1!R1C1:R4C2", _
"[工作簿1]Sheet1!R1C5:R4C6", "[工作簿1]Sheet1!R7C7:R10C8"), Function:=xlSum, TopRow _
:=False, LeftColumn:=False, CreateLinks:=False
End Sub
经过修改后,可以形成如下的通用的vba合并计算代码如下:
Sub QQ1722187970()
Dim oRng As Range
Dim oWK As Worksheet
Set oWK = Sheet1
Set oRng = oWK.Range("a100")
Dim arr()
k = 0
For i = 0 To 3
ReDim Preserve arr(k)
arr(k) = "[工作簿1]Sheet1!R1C1:R4C" & i + 4
k = k + 1
Next
With oRng
.Consolidate Sources:=arr, Function:=xlSum, TopRow _
:=False, LeftColumn:=False, CreateLinks:=False
End With
End Sub
值得注意的是,如果要合并计算的单元格区域是外部工作簿,还需要带上路径。


发表评论