如何用vba调用合并计算功能?

如下图所示

在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

值得注意的是,如果要合并计算的单元格区域是外部工作簿,还需要带上路径。

       

发表评论