VBA Sao chép Tệp / Sổ làm việc

VBA cho phép bạn sao chép một tệp, bằng cách sử dụng FileSystemObject. Trong hướng dẫn này, bạn sẽ học cách sao chép và đổi tên một tệp cụ thể.

Nếu bạn muốn tìm hiểu cách đổi tên tệp, bạn có thể nhấp vào liên kết này: VBA Đổi tên tệp

Sao chép tệp / sổ làm việc

Chúng tôi sẽ hướng dẫn cách sao chép tệp hiện có Tệp mẫu 1.xlsx trong thư mục Thư mục VBA. Trong ví dụ này, chúng tôi sẽ không đổi tên tệp, chỉ sao chép và ghi đè tệp. Thư mục hiện chỉ có một tệp này:

Hình ảnh 1. Tệp trong thư mục C: \ VBA Folder

Đây là mã:

12345 Làm mờ oFSO dưới dạng đối tượngĐặt oFSO = CreateObject ("Scripting.FileSystemObject")Gọi oFSO.CopyFile ("Thư mục C: \ VBA \ Tệp mẫu 1.xlsx", "Thư mục C: \ VBA \", True)

Trước tiên, bạn cần tạo đối tượng của lớp Scripting.FileSystemObject:

1 Đặt oFSO = CreateObject ("Scripting.FileSystemObject")

Sau đó, chúng ta có thể sử dụng phương pháp CopyFile:

1 Gọi oFSO.CopyFile ("Thư mục C: \ VBA \ Tệp mẫu 1.xlsx", "Thư mục C: \ VBA \", True)

Tham số đầu tiên của phương thức là đường dẫn nguồn và tham số thứ hai là đường dẫn đích. Tham số thứ ba là Ghi đè. Vì chúng ta có cùng đường dẫn nguồn và đường dẫn đích nên chúng ta cần đặt Ghi đè thành Đúng hoặc Sai. Trong ví dụ này, chúng tôi đặt True, có nghĩa là tệp gốc bị ghi đè.

Bây giờ, hãy xem điều gì sẽ xảy ra nếu chúng ta có cùng điểm đến, nhưng đặt Ghi đè thành Sai. Bạn chỉ cần thay đổi dòng mã này:

1 Gọi oFSO.CopyFile ("Thư mục C: \ VBA \ Tệp mẫu 1.xlsx", "Thư mục C: \ VBA \", True)

Kết quả là bạn sẽ gặp lỗi như bạn có thể thấy trong Hình 2:

Hình ảnh 2. Lỗi khi sao chép tệp

Sao chép và đổi tên tệp

Một tùy chọn khả thi khác khi sao chép tệp là đổi tên tệp. Nó tương tự như sao chép một tệp, nhưng bây giờ bạn chỉ cần đặt đường dẫn đích với một tên khác. Đây là mã:

12345 Làm mờ oFSO dưới dạng đối tượngĐặt oFSO = CreateObject ("Scripting.FileSystemObject")Gọi oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \ Sample file Copy.xlsx")

Như bạn có thể thấy từ dòng cuối cùng của mã, chúng tôi muốn sao chép tệp Tệp mẫu 1.xlsx trong cùng một thư mục và đặt tên cho nó Tệp mẫu Copy.xlsx:

1 Gọi oFSO.CopyFile ("C: \ VBA Folder \ Sample file 1.xlsx", "C: \ VBA Folder \ Sample file Copy.xlsx")

Bây giờ chúng ta có hai tệp trong Thư mục VBA. Kết quả của mã là trong Hình ảnh 3:

Hình ảnh 3. Sao chép và đổi tên tệp

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave