返回列表 上一主題 發帖

[發問] 如何將三個表格合併在一個表格裡?(巨集執行出錯)

[發問] 如何將三個表格合併在一個表格裡?(巨集執行出錯)

各位大大您好,

關於這個發問,之前准提大大已有提供解法:連結

但是因為要在F欄增加運算:E欄的值都乘上5

所以我有把巨集稍做更改如下,為了不要把F欄刪除掉:

原本:Sheets("總表").UsedRange.Clear
更改成:
Sheets("總表").Select
Columns("A:E").Select
Selection.ClearContents

原本不會出錯。但如果筆數減少後,在執行時,就會出錯,如下2個圖。
擷取.PNG
2020-10-13 20:45

擷取2.PNG
2020-10-13 20:45


因此想請問該如何解決呢? 是否巨集要再做更改呢?

附上附檔: 檔案1.zip (17.41 KB)

再麻煩大家協助,感謝。

回復 1# gaishutsusuru

紅字修正
Sub TEST()
Dim Arr, Brr, xD, i&, j&, R&, C&, U&, T$

Sheets("總表").Select
Columns("A:E").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

TOP

回復 2# jcchiang

啊~原來問題出在這裡,可以用了,感謝jcchiang大大的協助。:)

TOP

如果工作表數量不確定, 稍修如下:
檔案1-1.rar (16.48 KB)

TOP

回復 4# 准提部林



謝謝准提大大的回覆,我來試看看。

TOP

        靜思自在 : 每天無所事事,是人生的消費者,積極、有用才是人生的創造者。
返回列表 上一主題