Xin được giúp đỡ tổng hợp dữ liệu từ nhiều File Excel khác nhau có cùng cấu trúc (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nguyendu277

Thành viên chính thức
Tham gia
7/1/11
Bài viết
51
Được thích
5
Mình có 5 file có cấu trúc các cột giống hệt nhau, bây giờ mình muốn tổng hợp vào 1 file như tệp tin đính kèm theo link dưới đây (File chứa nhiều dữ liệu nên kích thước lớn không đính kèm trực tiếp trên 4rum được)
https://drive.google.com/open?id=1H97oIK3sN8FnrPcy01_RlgxRPBy1FUqY

Mình cũng đã kham khảo nhiều code các bạn chia sẻ để tổng hợp dữ liệu, tuy nhiên dữ liệu của mình tương đối lớn, mình có thử nhưng máy chạy lâu và treo, cũng có thể do mình chỉnh sửa lại code được share chưa đúng.
Rất mong được các bạn nhúng code tối ưu và chạy nhanh nhất có thể vào file TÔNG HỢP như file gửi kèm giúp mình.
Cảm ơn các bạn rất nhiều.
 
@hpkhuong:
Đây là tổng hợp nhiều files. Bạn phải dự trù trường hợp có files mở không được.
Nếu có lỗi xảy ra, code vẫn chạy hết và thể ngừoi dùng vẫn không biết rằng có files bị bỏ sót.
Bạn nên cho code viết một cái log cho biết những files nào đã được đọc và những cái nào bị lướt qua.
 
Upvote 0
Mã:
Public Sub GPE()
Dim cn As Object, Str, Item
Set cn = CreateObject("ADODB.Connection")
Application.ScreenUpdating = False
With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = True
    .Filters.Add "Excel File", "*.xls*", 1
    If Not .Show = -1 Then
        MsgBox "Ban chua chon File", vbInformation, "----Mr.GPE----"
        Exit Sub
    End If
On Error Resume Next
For Each Item In .SelectedItems
    cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Item & ";Extended Properties=""Excel 12.0;HDR=No"";"
    Str = "Select * from [CHI TIET$D5:AP] where f1 is not null"
    Sheets("CHI TIET").Range("D" & Rows.Count).End(3)(2).CopyFromRecordset cn.Execute(Str)
    cn.Close
Next
End With
MsgBox "Done!"
Application.ScreenUpdating = True
End Sub
Cám ơn bạn nhiều
 
Upvote 0
@hpkhuong:
Đây là tổng hợp nhiều files. Bạn phải dự trù trường hợp có files mở không được.
Nếu có lỗi xảy ra, code vẫn chạy hết và thể ngừoi dùng vẫn không biết rằng có files bị bỏ sót.
Bạn nên cho code viết một cái log cho biết những files nào đã được đọc và những cái nào bị lướt qua.
Bạn có thể giúp mình tối ưu code được không, cảm ơn bạn nhiều.
 
Upvote 0
Theo hiểu biết của mình tối ưu có nghĩa là tốt nhất có thể.
Trong trường hợp của mình như bạn đã nói là phải dự trù trường hợp có files mở không được.
Nếu có lỗi xảy ra, code vẫn chạy hết và thể ngừoi dùng vẫn không biết rằng có files bị bỏ sót.
Nên bạn có thể giúp mình cải tiến được code bạn trên đã giúp để có thể khắc phục được trường hợp nếu như nó sảy ra như trên được không.
Cám ơn tất cả các bạn rất nhiều về sự trợ giúp.
 
Upvote 0
Cách dễ nhất cho code trên là đặt thêm một biến mảng, và một biến đếm số dòng trong sheet sau khi đã copy. Mỗi lần copy xong thì ghi tên file và số dòng copy được (số dòng mới - số dòng cũ) vào mảng. Sau khi hoàn tất thì ghi mảng này vào một sheet log.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom