返回列表 上一主題 發帖

[發問] 請問:將三個表格合併在一個表格裡

[發問] 請問:將三個表格合併在一個表格裡

大家好,想請問如何將「三個工作表表格的資料」合併在一個表格裡,詳細說明如下:

工作表:X1
1.PNG
2019-11-27 17:01

有4個號碼(沒有照順序排序),及對應的小計值
(實際上的筆數,不固定。例子僅以4筆為例)

工作表:X2
2.PNG
2019-11-27 17:01

有4個號碼(沒有照順序排序),及對應的小計值
(實際上的筆數,不固定。例子僅以4筆為例)

工作表:X3
3.PNG
2019-11-27 17:01

有3個號碼(沒有照順序排序),及對應的小計值
(實際上的筆數,不固定。例子僅以3筆為例)

工作表:總表
4.PNG
2019-11-27 17:02

希望呈現出:
(1) 將X1~X3的號碼按順序排列
(2) X1的小計值,會放在X1的欄底下
(3) X2的小計值,會放在X2的欄底下
(4) X3的小計值,會放在X3的欄底下
(5) 並將X1~X3小計值加總後,放在合計

關於排序之前有發文:「請問如何將文字轉成值,並排序?」,但先前只適用處理單一的工作表。
目前是想將X1~X3的號碼,合併在總表裡,並以如圖的方式呈現。

最後附上EXCEL檔案如下,謝謝。
活頁簿1.zip (8.83 KB)

再請各位大神幫忙協助提供想法,非常感謝。

Sub TEST()
Dim Arr, Brr, xD, i&, j&, R&, C&, U&, T$
Sheets("總表").UsedRange.Clear
Set xD = CreateObject("Scripting.Dictionary")
ReDim Brr(1 To 2000, 1 To 99)
Brr(1, 1) = "號碼"
For i = 1 To Sheets.Count
    If Left(Sheets(i).Name, 1) <> "X" Then GoTo i99
    C = C + 1: Brr(1, C + 1) = Sheets(i).Name
    Arr = Sheets(i).UsedRange
    For j = 2 To UBound(Arr)
        T = Arr(j, 1): If T = "" Then GoTo j99
        U = xD(T)
        If U = 0 Then R = R + 1: U = R: xD(T) = R: Brr(U + 1, 1) = T
        Brr(U + 1, C + 1) = Brr(U + 1, C + 1) + Arr(j, 2)
j99: Next j
i99: Next i
With Sheets("總表").[a1].Resize(R + 1, C + 2)
     .Columns(1).NumberFormatLocal = "@"
     .Value = Brr
     .Sort Key1:=.Item(1), Order1:=xlAscending, Header:=xlYes
     .Columns(C + 2) = "=SUM(RC[-" & C & "]:RC[-1])"
     .Rows(R + 2) = "=n(SUM(R[-" & R & "]C:R[-1]C))"
     .Cells(1, C + 2) = "合計": .Cells(R + 2, 1) = "合計"
     Union(.Rows(1), .Rows(R + 2), .Columns(C + 2)).Font.Bold = True
End With
End Sub

Xl0000008.rar (15.4 KB)


=============================
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

回復 2# 准提部林


    太高了!佩服!佩服!

TOP

回復 2# 准提部林


    謝謝准提大大提供的方法,非常謝謝您。:)

TOP

        靜思自在 : 不怕事多,只怕多事。
返回列表 上一主題