Board logo

標題: 如何讓總表讀取其他工作表的資料 [打印本頁]

作者: av8d    時間: 2016-10-22 15:01     標題: 如何讓總表讀取其他工作表的資料

[attach]25598[/attach]

1.如何讓總表讀取其他工作表的資料(答案如附件檔)? (因為其他工作表會不斷新增資料)

2.當1.完成後,是否能在修改總表資料時,其他工作表也會自動同步修改?

以上要辛苦老師,萬分感謝!

作者: GBKEE    時間: 2016-10-23 13:29

回復 1# av8d
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar As Variant, E As Variant
  4.     Sheets("總表").UsedRange.Offset(1).Clear  '**清除總表中舊有資料
  5.     For Each E In Sheets
  6.         If E.Name <> "總表" Then
  7.             If IsEmpty(Ar) Then ReDim Ar(1 To 1) Else ReDim Preserve Ar(1 To UBound(Ar) + 1)
  8.             Ar(UBound(Ar)) = E.UsedRange.Offset(1)
  9.         End If
  10.     Next
  11.     For Each E In Ar
  12.         With Sheets("總表").Range("A" & Rows.Count).End(xlUp).Offset(1)
  13.             .Resize(UBound(E), UBound(E, 2)) = E
  14.         End With
  15.     Next
  16. End Sub
複製代碼

作者: av8d    時間: 2016-10-23 14:16

回復 2# GBKEE


    感謝G大出馬解決問題,我自行修改了一下如下,正式的寫法還要請G大幫忙,如下:

因為A欄是日期,所以我用巨集錄下了修改所以竟變成了,第14~16行是巨集錄製的。
  1. Dim Ar As Variant, E As Variant
  2.     Sheets("總表").UsedRange.Offset(1).Clear  '**清除總表中舊有資料
  3.     For Each E In Sheets
  4.         If E.Name <> "總表" Then
  5.             If IsEmpty(Ar) Then ReDim Ar(1 To 1) Else ReDim Preserve Ar(1 To UBound(Ar) + 1)
  6.             Ar(UBound(Ar)) = E.UsedRange.Offset(1)
  7.         End If
  8.     Next
  9.     For Each E In Ar
  10.         With Sheets("總表").Range("A" & Rows.Count).End(xlUp).Offset(1)
  11.             .Resize(UBound(E), UBound(E, 2)) = E
  12.         End With
  13.     Next
  14.     Range("A2").Select
  15.     Range(Selection, Selection.End(xlDown)).Select
  16.     Selection.NumberFormatLocal = "[$-404]e/m/d"
複製代碼

作者: lpk187    時間: 2016-10-23 15:09

回復 3# av8d


    Range("A2", [A2].End(xlDown)).NumberFormatLocal = "[$-404]e/m/d"
作者: av8d    時間: 2016-10-23 19:57

回復 2# GBKEE

再請問一下G大,如果我有個工作表("位置圖")不想加入總表當中,是否有辦法,萬分感激。
作者: GBKEE    時間: 2016-10-24 04:25

回復 5# av8d
  1. If E.Name <> "總表" And E.Name <> "位置圖" Then
  2. '
  3. '
  4. '
  5. Sheets("總表").UsedRange.Columns(1).NumberFormatLocal = "[$-404]e/m/d"
複製代碼

作者: av8d    時間: 2016-10-24 13:26

回復 6# GBKEE

謝謝G大,如果我把按鈕放在位置圖,會出現型態不符合的訊息,.Resize...........問題出現在這段。
作者: GBKEE    時間: 2016-10-24 20:08

回復 7# av8d
錯誤是 Chart 沒有 Rows物件,Worksheet 才有Rows物件
With Sheets("總表").Range("A" & Sheets("總表").Rows.Count).End(xlUp).Offset(1)
作者: av8d    時間: 2016-10-25 00:06

回復 6# GBKEE


    G大,抱歉,再次打擾,[attach]25631[/attach]

他黃色標誌的地方是 .Resize(UBound(E), UBound(E, 2)) = E

再次麻煩G大,萬分感激。
作者: lpk187    時間: 2016-10-25 00:45

回復 9# av8d


    你這裡
If E.Name <> "總表" Then
要改成
If E.Name <> "總表" And E.Name <> "位置圖" Then
作者: av8d    時間: 2016-10-25 23:44

回復 10# lpk187


    原來是我改錯地方~萬分感謝GBKEE大大和lpk187大大
作者: av8d    時間: 2016-10-25 23:53

本帖最後由 av8d 於 2016-10-26 00:16 編輯

發現一個問題,總表A欄和B欄所擷取後的格式會自動靠右,目前需求是希望能靠左,我先寫個巨集先用,希望能知道原因,萬分感謝。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)