如下图所示
在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
值得注意的是,如果要合并计算的单元格区域是外部工作簿,还需要带上路径。
发表评论