- 多個excel檔案合併至同一分頁中
參考網址:http://www.ckizumi.com/2013/08/excel.html - 同一檔案分頁合併至同一分頁中
參考網址:http://blog.bestdaylong.com/2008/10/excel.html - 同or不同檔案之相同表格合併彙算至單一表格中
參考網址:http://www.techbang.com/posts/12567-using-merge-calculation-tabular-data-into-one
1.
a. M Riza 先生的VBA
Sub simpleXlsMerger() Dim bookList As Workbook Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object Application.ScreenUpdating = False Set mergeObj = CreateObject("Scripting.FileSystemObject") 'change folder path of excel files here Set dirObj = mergeObj.Getfolder("D:\change\to\excel\files\path\here") Set filesObj = dirObj.Files For Each everyObj In filesObj Set bookList = Workbooks.Open(everyObj) 'change "A2" with cell reference of start point for every files here 'for example "B3:IV" to merge all files start from columns B and rows 3 'If you're files using more than IV column, change it to the latest column 'Also change "A" column on "A65536" to the same column as start point Range("A2:IV" & Range("A65536").End(xlUp).Row).Copy ThisWorkbook.Worksheets(1).Activate 'Do not change the following column. It's not the same column as above Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Application.CutCopyMode = False bookList.Close Next End Sub
b. 使用說明:
- 開啟 Excel,按下 Alt + F11 叫出巨集編輯器,貼入網站中的 Code
- 要貼在【ThisWorkbook】裡面喔~不是Sheet裡!!!
- 修改第8行的路徑,改成需要合併的 Excel 檔存放路徑
- 按下執行鍵就 OK 了
心得
- 儘管是 CSV 檔案也能正確合併。
- 這邊要注意一件事情,Code 當中的 A2 是起始的儲存格,在合併過程中會忽略掉標題列,直接從第二列開始複製;若是你想連標題列都合併起來,請改成 A1。IV 是他的複製欄寬,可以改成自己想要的欄寬。
Range("A2:IV" & Range("A65536").End(xlUp).Row).Copy心得第二點的發現是因為我合併了所有的檔案,還很慶幸原來只有六萬多筆,最後慚愧地發現原來資料數量有三十萬筆,而 Code 當中卻只設定到 65,536 筆,只需要把 A65536 改成 A1048576 即可。
- 值得注意的是,雖然這個方法是給 Excel 2007 使用,但 Excel 2007 開始有個重大變化,就是 Excel 最大列數從 2^16 次方改成了 2^20 次方。這代表你可以處理的資料從 Excel 2003 的 65,536 筆增加至 1,048,576 筆。
沒有留言:
張貼留言