使用EXCEL巨集彙整Sheet

請教excel達人

如果我有一個叫market的excel表

裡面有抓外部程式(這是公司以前請人家設計的),依據每天的case不同

會產生多個sheet表(但sheet表的數量是不固定的,要依當天的資料而定)

每個sheet表的欄位都標題都相同(但內容行數可能不同,因為每個市場的資料量不一樣)

我要怎麼使用巨集把這些sheet表自動彙整在一張sheet表裡呢?

例如

今天6/5

sheet a

  欄a 欄b

行A 15 20

行B 10 30

sheet b

  欄a 欄b

行A 10 3

行B 5 7

行C 6 8

彙整成

欄a 欄b

行A 15 20

行B 10 30

行C 10 3

行D 5 7

行E 6 8

明天6/6,但是有3個sheet (a,b, c),一樣仿照上面彙整成一張。

謝謝

Update:

謝謝:老年人 ,我試試看。

Update 2:

老年人:不好意思,因為我真的對程式方面不懂,所以我簡單的依我們的現場,弄了個sample表,不曉得是否方便依此表提供您的解答呢?謝謝

http://www.FunP.Net/246247

2 Answers

Rating
  • 8 years ago
    Favorite Answer

    請參考檔案

    http://www.FunP.Net/110840

    在 "彙整" 工作表內 按 [彙整] 按鈕即可. 試試看吧!

    2012-06-07 22:16:51 補充:

    http://www.FunP.Net/389069

    請參考新檔案.

    一樣在 "彙整" 工作表內 按 [彙整] 按鈕即可. 試試看吧!

    2012-06-08 07:43:11 補充:

    不需要彙整的Sheet名稱加入此行內

    If mSht.Name <> "彙整" Then

    假設Sheet名稱為 Test 則改為如下:

    If mSht.Name <> "彙整" And mSht.Name <> "Test" Then

    使用這個巨集就可以應付任何sheet 數量.

    2012-06-12 12:48:05 補充:

    請參考檔案

    http://www.FunP.Net/110840http://www.FunP.Net/3890...

    在 "彙整" 工作表內 按 [彙整] 按鈕即可. 試試看吧!不需要彙整的Sheet名稱加入此行內

    If mSht.Name<> "彙整" Then

    假設Sheet名稱為Test 則改為如下:

    If mSht.Name<> "彙整" And mSht.Name<> "Test" Then

    如下:Private Sub CommandButton1_Click()Dim mSht As WorksheetDim mSht1 As WorksheetDim mRng As RangeDim tmpRng As Range Set mSht1 = Worksheets("彙整")For Each mSht In WorksheetsIf mSht.Name <> "彙整" And mSht.Name<> "Test" ThenSet mRng = mSht1.Range("a65536").End(xlUp).Offset(1) Set tmpRng = mSht.Range("a1").CurrentRegiontmpRng.Rows("1:" & tmpRng.Rows.Count).Copy mRngEnd IfNextEnd Sub

    使用這個巨集就可以應付任何sheet數量. 請參考檔案如下:http://www.funp.net/95826

  • 8 years ago

    非常謝謝您,可以使用。

    另想再請教一下,因為其實這個檔有個Sheet 0,是用來記錄一些其他的資料(格式和sheet1~3不一樣),那個sheet0不需要彙整。

    如果我把sheet0放回來,這個程式會受到影響嗎?如果會,大概要修改那個地方呢?

    另外,如果今天我的sheet 因為資料多,(此範例是sheet1~3),變成有sheet1~4。也是一樣使用這個巨集就可以了嗎?是否有需要修改的地方?

    (正在研究您的巨集程式)

Still have questions? Get your answers by asking now.