Câu trả lời rất đơn giản: Sử dụng VBA để tự động hóa các thao tác.
Sau đây chúng ta hãy cùng Học Excel Online tìm hiểu những câu lệnh trong VBA giúp mở 1 file trong máy tính một cách tự động:
Sub GetDirNames() 'Lấy danh sách tên file trong thư mục | |
Const sPath="C:\Test\" 'Đường dẫn tới thư mục | |
Dim sFil As String | |
sFil=Dir(sPath & "*.xl*") 'đuôi file .xlsx .xlsb .xlsm... đều sử dụng được | |
Do While sFil <> "" | |
Range("D65536").End(xlUp)(2).Value=sPath & sFil 'Lấy danh sách các tên file trong thư mục | |
sFil=Dir | |
Loop | |
End Sub |
Sub OpenImp() 'Mở file và sao chép dữ liệu sang file khác | |||||||||||||||||||||||||||||||||||||||||||||||||
Const sPath="C:\Test\" 'Thư mục chứa file | |||||||||||||||||||||||||||||||||||||||||||||||||
Dim sFil As String | |||||||||||||||||||||||||||||||||||||||||||||||||
Dim owb As Workbook | |||||||||||||||||||||||||||||||||||||||||||||||||
Dim ws As Worksheet | |||||||||||||||||||||||||||||||||||||||||||||||||
Set ws=Sheet1 'Xác định tên Sheet chứa kết quả (đích) | |||||||||||||||||||||||||||||||||||||||||||||||||
sFil=Dir(sPath & "*.xl*") 'Xác định loại file cần lấy | |||||||||||||||||||||||||||||||||||||||||||||||||
Do While sFil <> "" | |||||||||||||||||||||||||||||||||||||||||||||||||
Set owb=Workbooks.Open(sPath & sFil) 'Mở file cần copy | |||||||||||||||||||||||||||||||||||||||||||||||||
'Copy vùng dữ liệu từ A2 đến dòng cuối cột F | |||||||||||||||||||||||||||||||||||||||||||||||||
Range("A2", Range("F" & Rows.Count).End(xlUp)).Copy ws.Range("A" & Rows.Count).End(xlUp)(2) | |||||||||||||||||||||||||||||||||||||||||||||||||
'Đóng workbook mà không lưu | |||||||||||||||||||||||||||||||||||||||||||||||||
owb.Close False | |||||||||||||||||||||||||||||||||||||||||||||||||
sFil=Dir | |||||||||||||||||||||||||||||||||||||||||||||||||
Loop | |||||||||||||||||||||||||||||||||||||||||||||||||
End Sub* Lưu ý: Xác định rõ 2 đối tượng:
3. Lấy nội dung theo điều kiện từ 1 workbook khácTrong trường hợp chúng ta cần lấy dữ liệu theo điều kiện xác định thì sẽ làm thế nào? Khác với trường hợp 2 là lấy tất cả nội dung, trường hợp này chúng ta cần kết hợp với việc lọc dữ liệu, sau đó lấy kết quả lọc được để sao chép sang file khác.Câu lệnh như sau:
|
No comments:
Post a Comment