Excel工作表進行計算,如何多表進行?
Range對象給出了一個方法,很方便地實現了多表之間進行單元格計算。
方法:Range.Consolidate(sources、Function、 TopRow、 LeftColumn、 CreateLinks)
功能:将多個工作表中多個區域的數據合并計算至單個工作表上的單個區域
Consolidate有一些參數,具體内容查看下圖。
這裡主要說一下Function參數,其功能是指定要執行的合并類型,就是說要以什麼方式來合并。
XlConsolidationFunction是參數常量,可以求和、平均、乘積、最大數、最小數等等不同類型進行數據合并計算。
XlConsolidationFunction常量表
NO.2 舉例說明
本例分别以求和、平均、最大值、最小值、乘積、計數為合并類型。
操作方式以選擇表格内任意單元格,對表一和表二兩個工作表相同單元格内容進行合并計算,計算結果顯示到相應位置。
相對來說,代碼整合為一個函數功能裡面,直接調用函數即可實現所有計算。
做到簡單高效。
NO.3 代碼解釋
合并計算函數
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)進行增加即可實現。
總體思路就是這樣,對于兩張表進行計算并不能發揮出其方法的優勢,要進行幾百張表進行合并計算還是十分有效的。
所以,學習深入以後,對于多表進行操作就很有幫助了。
歡迎關注、收藏
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!