Tổng hợp dữ liệu từ nhiều file excel

     

Tổng phù hợp dữ liệu từ nhiều tệp tin excel vào 1 tệp tin ko nên msinh hoạt file​

Bài tân oán đưa ra nhỏng sau: Mình thời điểm nào cũng sẽ có 5 file tài liệu (từng tệp tin khoảng tầm 2000-5000 cái dữ liệu), download trực tiếp mỗi ngày từ bỏ hệ thống cùng với định dạng định sẵn bên dưới định hình .xls (số cột cùng vị trí cột định sẵn theo chủng loại kèm theo là các file CA1, CA2, CA3, CA4, CA5). Mình bắt buộc tổng thích hợp lại 5 file vào 1 tệp tin độc nhất vô nhị (nlỗi mẫu đính thêm kèm) trong số ấy du liệu của các tệp tin CA1, CA2, CA3, CA4, CA5 đã nối tiếp nhau ghep vào 1 sheet theo đúng cột tương ứng. Để tổng vừa lòng đc nhưng k đề xuất mlàm việc cả 5 file lên là cực tốt (nhỏng giao diện paste links và bao gồm linc external data vậy).Bài toán bên trên chỉ là một trong giữa những nhu yếu của tương đối nhiều bạn về vấn đề làm gắng làm sao để tổng thích hợp tài liệu từ không ít tệp tin Excel không giống nhau vào bình thường một tệp tin.

Bạn đang xem: Tổng hợp dữ liệu từ nhiều file excel

*
"title=""width="" height="" loading="lazy" />

Xem thêm: Có Nên Hơ Than Cho Mẹ Và Bé Sau Sinh Mổ Có Nằm Than Được Không Tại Sao?

Function GetData(ByVal FileName As String, ByVal SheetName As String, ByVal RangeAddress As String, _ ByVal HasTitle As Boolean, ByVal UseTitle As Boolean) Dlặng rsCon As Object, rsData As Object, mèo As Object, tbl As Object Dlặng tmpArr, Arr() Dim szConnect As String, szSQL As String, tmp As String Dlặng lCount As Long, lR As Long, lC As Long, lVer As Long lVer = Val(Application.Version) Set rsCon = CreateObject("ADODB.Connection") Set rsData = CreateObject("ADODB.Recordset") Set mèo = CreateObject("ADOX.Catalog") If lVer "$" Then SheetName = SheetName & "$" rsCon.mở cửa szConnect mèo.ActiveConnection = rsCon szSquốc lộ = "SELECT * FROM <" & SheetName & RangeAddress & ">;" rsData.mở cửa szSQL, rsCon, 0, 1, 1 tmpArr = rsData.GetRows ReDlặng Arr(UBound(tmpArr, 2) - UseTitle, UBound(tmpArr, 1) + 1) If UseTitle Then For lC = LBound(tmpArr, 1) To UBound(tmpArr, 1) Arr(0, lC) = rsData.Fields(lC).Name Next End If For lR = LBound(tmpArr, 2) To UBound(tmpArr, 2) For lC = LBound(tmpArr, 1) To UBound(tmpArr, 1) Arr(lR - UseTitle, lC) = tmpArr(lC, lR) Next Next rsData.Close: Set rsData = Nothing rsCon.Close: Set rsCon = Nothing GetData = ArrEnd FunctionSub Main() Dyên vFile, FileItem, aRes, Target As Range Dyên ổn FileName As String, SheetName As String, RangeAddress As String On Error Resume Next vFile = Application.GetOpenFilename("Excel File, *.xls; *.xlsx; *.xlsm", , , , True) If TypeName(vFile) = "Variant()" Then SheetName = "Sheet1": RangeAddress = "A8:V10000" For Each FileItem In vFile FileName = CStr(FileItem) If UCase(FileName) UCase(ThisWorkbook.FullName) Then aRes = GetData(FileName, SheetName, RangeAddress, False, False) If IsArray(aRes) Then Set Target = Sheet1.Range("A60000").End(xlUp).Offset(1) Target.Resize(UBound(aRes, 1) + 1, UBound(aRes, 2) + 1).Value = aRes End If End If Next MsgBox "Done!" End IfEnd Sub
Cách dùng:- Cho code trên vào Module- Chạy sub Main- Cửa sổ xuất hiện File hiện ra, sử dụng loài chuột lựa chọn tệp tin đầu, bấm giữ lại phím Shift rồi còn file cuối ---> Bấm nút ít Open- Chờ trong tích tắc, lúc MsgBox hiện ra báo hiệu hoàn chỉnh, khám nghiệm lại tài liệu trong file hiện tại hành xem đang update chưa-------------Lưu ý: File TongHop đề xuất được lưu lại theo định hình XLSM (nếu lưu bằng XLSX sẽ mất không bẩn code). Ngoài ra, các bạn cũng để ý đoạn đánh đậm A8:V10000 tô đậm bên trên chính là liên can mang dữ liệu. Nếu dữ liệu của công ty bắt đầu từ bỏ A2 cho F100 ví dụ điển hình, chúng ta có thể sửa thành A2:F100 để bảo vệ sự đúng đắn.Chúc chúng ta thành công!Một số nội dung bài viết gồm liên quan:1/ Làm cách làm sao để ghi chụ kết quả trong VBA?2/ Conditional Formatting mang đến biểu đồ gia dụng bằng VBA3/ lúc như thế nào nên thực hiện Msgbox, Inputbox và Userform?4/ 8 mẹo nhỏ trong VBE bạn nên biết5/ Kích hoạt macro tự nút bấm ko kể bảng tính6/ Làm núm làm sao nhằm thay thế sửa chữa các chữ OK, CANCEL,... buồn rầu của Msgbox7/ Giới thiệu VBA trong Excel8/ Viết code để nhìn thấy ai là bạn update bảng tính của người sử dụng lần cách đây không lâu nhất9/ 4 phương pháp thực hiện Immediate Window vào VBA hiệu quả hơn10/ 3 gợi nhắc nhỏ dại đem đến thành công vào knhì báo vươn lên là vào VBA