excel两个表数据对比合并(Excel如何进行多表数据合并计算)

NO.1 Consolidate方法介绍

Excel工作表进行计算,如何多表进行?

Range对象给出了一个方法,很方便地实现了多表之间进行单元格计算。

方法:Range.Consolidate(sources、Function、 TopRow、 LeftColumn、 CreateLinks)

功能:将多个工作表中多个区域的数据合并计算至单个工作表上的单个区域

excel两个表数据对比合并(Excel如何进行多表数据合并计算)(1)

Consolidate有一些参数,具体内容查看下图。

excel两个表数据对比合并(Excel如何进行多表数据合并计算)(2)

这里主要说一下Function参数,其功能是指定要执行的合并类型,就是说要以什么方式来合并。

XlConsolidationFunction是参数常量,可以求和、平均、乘积、最大数、最小数等等不同类型进行数据合并计算。

excel两个表数据对比合并(Excel如何进行多表数据合并计算)(3)

XlConsolidationFunction常量表

NO.2 举例说明

excel两个表数据对比合并(Excel如何进行多表数据合并计算)(4)

本例分别以求和、平均、最大值、最小值、乘积、计数为合并类型。

操作方式以选择表格内任意单元格,对表一和表二两个工作表相同单元格内容进行合并计算,计算结果显示到相应位置。

相对来说,代码整合为一个函数功能里面,直接调用函数即可实现所有计算。

做到简单高效。

NO.3 代码解释

excel两个表数据对比合并(Excel如何进行多表数据合并计算)(5)

合并计算函数

Private Sub Functions(v As Integer, vR As Range) On Error Resume Next '功能:表一和表二选择单元格进行计算 Dim w'定义工作表数组 w = Array("计算表一", "计算表二") Dim wStr As String wStr = "!" Dim R As Range Set R = Selection Dim i As Integer, n As Integer n = R.Count * (UBound(w) 1) '数组大小为表数量乘以选择单元格数 If n <= 0 Then Exit Sub Dim RArr '定义数组 ReDim RArr(1 To n) Do '给数组 赋值 For x = 0 To UBound(w) For s = 1 To R.Count i = i 1 RArr(i) = w(x) & wStr & R.Item(s). _ Address(ReferenceStyle:=xlR1C1) '取计算范围 Next s Next x Loop While i < n vR.Select Selection.Consolidate sources:=RArr, _ Function:=FunctionArr(v)'执行合并计算 End Sub

分类汇总方式数组定义放到通用声明里

Dim FunctionArr '定义计算方式数组

分类汇总方式数组函数

Private Sub setFunction() '设置计算功能代码 'XlConsolidationFunction 常量数组定义 FunctionArr = Array(xlSum, xlAverage, _ xlCount, xlMax, xlMin, xlProduct) End Sub

函数调用

Private Sub CommandButton1_Click()'合并求和 Dim vR As Range Set vR = Me.Range("B2") setFunction Call Functions(0, vR) End Sub

重点说明

sources参数

参数说明:

以文本引用字符串数组的形式给出合并计算的源,该数组采用 R1C1-样式表示法。 这些引用必须包含将要合并计算的工作表的完整路径。

此参数是对合并数据单元格进行定位,是以数组形式传递地址,以R1C1样式表示,并且要单元格完整路径,所以在对Sources参数进行设置的时候要特别注意。

NO.4

以上代码整合到一起就完成了两个表数据合并计算功能了。

如想要对更多工作进行合并计算,相应地对工作表数组(w)进行增加即可实现。

总体思路就是这样,对于两张表进行计算并不能发挥出其方法的优势,要进行几百张表进行合并计算还是十分有效的。

所以,学习深入以后,对于多表进行操作就很有帮助了。

欢迎关注、收藏

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页