Gộp Nhiều File Excel Thành Một File Bằng VBA.
Đầu tiên, chúng ta tạo 3 file đặt cùng nằm trên 1 folder như hình dưới:
Trong thư mục bên trên chúng tôi tạo: File 1 có 5 sheet. File 2 có 2 sheet và file 3 có 1 sheet.
Sau khi có file chúng ta sẽ tạo 1 file excel hoàn toàn mới . Vào Developer > Visual Basic. Xuất hiện cửa sổ Microsoft Visual Basic for applications. Nhấp vào Insert > Module và sao chép đoạn mã dưới đây vào Module:
Hoặc nhấn ALT + F11 để mở cửa sổ lập trình và nhấp vào Insert > Module và sao chép đoạn mã dưới đây vào Module:
Sub copy()
Path = “C:\Users\HP\Desktop\Gop file excel\”
Filename = Dir(Path & “*.xls*”)
Do While Filename <> “”
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy after:=ThisWorkbook.Sheets(1)
Next
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
- Chú ý: Ngay chổ Path = “” : Bên trong dấu ngoặc là đường dẫn của thư mục chứa các file bạn lưu. Và nhớ thêm dấu gạch “\” sau cùng đường dẫn để nó hiểu là 1 folder nhé.
Cuối cùng nhấn Run hoặc F5 để chạy mã. Tất cả trang tính sẽ được hợp nhất vào 1 file lớn duy nhất.
Bạn có thể thấy là tất cả các sheet của 3 file đã được gộp vào 1 file mới tạo.
Có thể thấy rằng các sheet có tên sheet 1 và sheet 1 (2) để phân biệt nó chỉ là trùng tên lúc tạo tên sheet chứ dữ liệu hoàn toàn không đổi.
Tạo Shapes Để Chạy Code VBA
Tạo 1 Shapes để chạy VBA như sau:
Cuối cùng chúng ta muốn chạy Shapes vừa tạo đẹp hơn thì xoá hết các sheet chỉ để lại sheet tạo Shapes của mình. Lưu ý lưu file (book2) dưới dạng Excel Macro-Enabled Workbook.