Hàm VBA FileCopy | Sao chép tệp từ một thư mục sang một thư mục khác

Hàm sao chép tệp Excel VBA

File Copy là một chức năng vba có sẵn được sử dụng để sao chép tệp từ vị trí này sang vị trí được đề cập khác. Để sử dụng chức năng này, chúng ta cần đề cập đến đường dẫn tệp hiện tại và đường dẫn tệp đích.

Ok, chúng ta hãy xem cú pháp của hàm FileCopy.

  • Nguồn: Đây không phải là gì mà từ nơi chúng tôi cần sao chép tệp. Chúng ta cần đề cập đến đường dẫn thư mục đủ điều kiện.
  • Đích: Đây là thư mục đích nơi chúng ta cần dán tệp đã sao chép.

Các ví dụ

Dưới đây là các ví dụ về cách sao chép tệp bằng Mã VBA.

Bạn có thể tải xuống Mẫu Excel Sao chép Tệp VBA này tại đây - Mẫu Excel Sao chép Tệp VBA

Ví dụ 1

Hãy bắt đầu với một ví dụ đơn giản. Tôi có một tệp có tên là “Bán hàng tháng 4 năm 2019” trong thư mục. Dưới đây là hình ảnh của cùng một nghĩa là " Nguồn ".

Từ vị trí trên, tôi muốn sao chép tệp này và dán vào một thư mục khác. Dưới đây là hình ảnh của cùng một nghĩa là " Nguồn đích".

Ok, hãy viết mã cho nó.

Mở chức năng FileCopy bên trong thủ tục Sub.

Mã:

 Sub FileCopy_Example1 ()

Sao chép tập tin

Kết thúc Sub

Bây giờ đối với đối số đầu tiên, chúng ta cần đề cập đến đường dẫn tệp nơi hiện tại của chúng ta đang ở.

Mã:

 Sub FileCopy_Example1 ()

FileCopy “D: \ My Files \ VBA \ April Files

Kết thúc Sub

Sau khi nhắc đến đường dẫn thư mục chúng ta cũng cần nhắc đến tệp có đuôi tệp. Vì vậy, hãy đề cập đến tên tệp bằng cách đặt dấu gạch chéo ngược (\).

Mã:

 Sub FileCopy_Example1 () FileCopy "D: \ My Files \ VBA \ April Files \ Sales April 2019.xlsx", End Sub 

Bây giờ trong đối số thứ hai đề cập đến nơi chúng ta cần dán tệp đã sao chép.

Mã:

 Sub FileCopy_Example1 () FileCopy "D: \ My Files \ VBA \ April Files \ Sales April 2019.xlsx", "D: \ My Files \ VBA \ Destination Folder \ Sales April 2019.xlsx" End Sub 

Một điều chúng ta cần làm ở đây sau khi đề cập đến đường dẫn thư mục ở cuối, chúng ta cần đề cập đến tên tệp cũng như trong đối số đích.

Bây giờ hãy chạy mã bằng phím F5 hoặc sau đó theo cách thủ công, nó sẽ sao chép tệp từ vị trí bên dưới sang vị trí đích.

“D: \ My Files \ VBA \ April Files \ Sales April 2019.xlsx”

“D: \ My Files \ VBA \ Destination Folder \ Sales April 2019.xlsx”

Ví dụ # 2 - Sử dụng các biến để lưu trữ đường dẫn nguồn và đường dẫn đích.

Trong ví dụ trước, chúng tôi đã cung cấp trực tiếp đường dẫn nguồn và đường dẫn đích vào công thức. Nhưng đây không phải là cách tốt nhất để tiếp tục, vì vậy hãy lưu trữ chúng trong các biến.

Để biết ví dụ, hãy xem đoạn mã dưới đây.

Mã:

 Sub FileCopy_Example2 () Dim SourcePath dưới dạng chuỗi Dim DestinationPath As String SourcePath = "D: \ My Files \ VBA \ April Files \ Sales April 2019.xlsx" DestinationPath = "D: \ My Files \ VBA \ Destination Folder \ Sales Tháng 4 năm 2019. xlsx "FileCopy SourcePath, DestinationPath End Sub 

Hãy để tôi giải thích mã chi tiết cho bạn.

Đầu tiên tôi đã khai báo hai biến.

 Dim SourcePath dưới dạng chuỗi Dim DestinationPath dưới dạng chuỗi 

Sau đó, đối với biến đầu tiên, tôi đã gán đường dẫn thư mục từ nơi nó phải sao chép tệp và tên tệp cùng với phần mở rộng tệp của nó.

SourcePath = "D: \ My Files \ VBA \ April Files \ Sales April 2019.xlsx"

Tương tự, đối với biến thứ hai, tôi đã gán đường dẫn thư mục đích với tên tệp và phần mở rộng excel.

DestinationPath = "D: \ My Files \ VBA \ Destination Folder \ Sales April 2019.xlsx"

Sau đó, đối với công thức FileCopy, tôi đã cung cấp các biến này thay vì các chuỗi đường dẫn thư mục dài dòng.

FileCopy SourcePath, DestinationPath

Như vậy, chúng ta có thể sử dụng các biến để lưu trữ các đường dẫn và sử dụng chúng một cách hiệu quả.

Ví dụ # 3 - Lỗi với Chức năng Sao chép Tệp

Đôi khi chức năng Sao chép tệp gặp lỗi “Quyền bị từ chối”.

Lý do tại sao chúng ta gặp lỗi này bởi vì khi tệp sao chép được mở và nếu bạn cố gắng sao chép lỗi ở trên, vì vậy hãy luôn đóng tệp và thực thi mã.


$config[zx-auto] not found$config[zx-overlay] not found