Lấy dữ liệu nhiều files từ nhiều Folders
Em có các file nằm ở các thư mục khác nhau, muốn lấy dữ liệu về 1 file tổng hợp. Các file này có sẵn đường dẫn, sheets cần lấy và vùng cần lấy dữ liệu. Thanks
17756
Chạy sub
Sub ABC()
Dim sArr(), cn As Object, fRow&
With Sheets("Sheet1")
sArr = .Range("A2", .Range("C" & Rows.Count).End(xlUp)).Value
End With
Set cn = CreateObject("ADODB.Connection")
On Error Resume Next
With Sheets("Sheet2")
For i = 1 To UBound(sArr)
fRow = .Range("A" & Rows.Count).End(xlUp).Row + 1
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sArr(i, 1) & ";Extended Properties=""Excel 12.0;HDR=No"";"
.Range("A" & fRow).CopyFromRecordset cn.Execute("select * from [" & sArr(i, 2) & "$" & sArr(i, 3) & "] where f1 is not null")
cn.Close
Next i
End With
Set cn = Nothing
End Sub
Khóa học SprinGO phù hợp
Khóa học Power PI – Ứng dung trong Nhân sự
TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...
Xem khóa học
Bạn thử thế này:
– Code luôn chép đè lên dữ liệu cũ tại sheet đích. Do đó, muốn khỏi lộn xộn dữ liệu mới và cũ còn sót lại thì phải xóa hết dữ liệu cũ đi rồi chép dữ liệu mới.
=> Thêm dòng này vào đầu code để xóa dữ liệu cũ:
– Để chỉnh dòng đầu tiên dán dữ liệu thì thay dòng:
bằng:
(fRow = 4 là dòng đầu, muốn sửa thì sửa con số này và sửa luôn Sheet2.Range("A4:Z" bên trên)
Chỉnh lại code: