Dồn nhiều file Excel thành 1 file

0

Trả lời :

Ý tưởng dồn hàng trăm file độc lập thành 1 file duy nhất là không hay, ngược với cách quản lý khoa học thông thường. Thực tế, để quản lý thông tin lớn, người ta thường chia nhỏ nó ra thành nhiều phần và chứa chúng lên nhiều file độc lập nhau, mỗi lần cần xử lý thành phần nào thì chỉ mở file tương ứng chứ không cần đụng chạm tới các file còn lại. Tuy nhiên nếu muốn dồn các file Excel lại thì bạn hãy viết code thực hiện tự động. Thí dụ đoạn code VB sau đây cho phép copy các worksheet của file c:\MySource.xls sang file c:\MyDest.xls, dựa vào đoạn code này bạn có thể phát triển lên để copy nhiều file *.xls vào 1 file *.xls. Bạn có thể dùng lệnh Dir của VB để duyệt tìm các file *.xls có trên đĩa cứng, ứng với mỗi file tìm được, bạn copy các worksheet của nó sang file kết quả như đoạn code dưới đây:

 Private Sub Command1_Click()
 'khai báo các biến cần dùng
 Dim fWorking As Boolean
 Dim oExcelSrc As Excel.Application
 Dim oExcelDes As Excel.Application
 Dim oBookSrc As Excel.Workbook
 Dim oBookDes As Excel.Workbook
 Dim oSheetSrc As Excel.Worksheet
 Dim oSheetDes As Excel.Worksheet
 'Mở workbook Excel nguồn
 Set oExcelSrc = New Excel.Application
 Set oBookSrc = oExcelSrc.Workbooks.Open("c:\MySource.xls")
 'Mở workbook Excel kết quả
 Set oExcelDes = New Excel.Application
 Set oBookDes = oExcelDes.Workbooks.Open("c:\MyDest.xls")
 'nếu muốn tạo mới thì dùng lệnh:
 'Set oBookDes = oExcelDes.Workbooks.Add
 
 'duyệt từng worksheet trong file nguồn
 For i = 1 To oBookSrc.Worksheets.Count
 Set oSheetSrc = oBookSrc.Worksheets(i)
 'chọn toàn bộ cell và copy vào Clipboard
 oSheetSrc.Activate
 oSheetSrc.Cells.Select
 oExcelSrc.ActiveWindow.Selection.Copy
 'tạo mới 1 worksheet trong file đích
 Set oSheetDes = oBookDes.Worksheets.Add(, oBookDes.Worksheets(oBookDes.Worksheets.Count))
 'dán nội dung Clipboard vào worksheet
 oSheetDes.Activate
 oSheetDes.Cells.Select
 oSheetDes.Paste
 Next i
 'lưu kết quả lên file đích
 oBookDes.SaveAs "C:\MyDest.xls", xlWorkbookNormal
 'dừng các ứng dụng Excel đã chạy
 oExcelSrc.Quit
 oExcelDes.Quit
 End Sub
 
Lưu ý rằng đoạn code VB trên có sử dụng các đối tượng Excel Automation nên để chạy được, bạn cần chọn menu Project.References của VB, duyệt tìm và chọn thành phần "Microsoft Excel x.y Object Library" để "add" nó vào Project ứng dụng của bạn. Ngoài ra, việc dồn nhiều worksheet trên các file độc lập lại thành một file có thể phát sinh nhiều vấn đề như tranh chấp thông tin, mất nhất quán thông tin... vì có thể tên các worksheet của các file *.xls trùng nhau hay trong các worksheet có dùng các thông tin liên kết...
 

0--1

Liên hệ xóa tin: [email protected]