VBA Excel Cấp Tốc Bài 5 - Copy File Từ Một Thư Mục Sang Thư Mục Khác

Khi bạn cần copy hoặc di chuyển nhiều file/folder tới nhiều Folder khác, bạn phải lần lượt thực hiện nhiều thao tác cắt dán chúng vào từng folder một. Nhưng nếu bạn cần thực hiện cho một số lượng lớn File thì thật sự mất khá nhiều thời gian.

Xem bài học trước

>> VBA Excel Cấp Tốc Bài 1 - Lọc Dữ Liệu Nhiều Điều Kiện Với Advanced Filter

>> VBA Excel Cấp Tốc Bài 2 - In Bảng Cửu Chương

>> VBA Excel Cấp Tốc Bài 3 - In Ấn Nhanh Hàng Loạt

>> VBA Excel Cấp Tốc Bài 4 - Xóa Tự Động Hàng Loạt Sheets Không Active

Video hướng dẫn thực hành

Chuẩn bị cơ bản để code chương trình copy File.

Chuẩn bị File Cần copy và File để paste.

Đầu tiên bạn sẽ lưu File thực hành copy ở Desktop: Vào File -> Save -> Desktop -> đặt tên File nhớ chọn đuôi là Excel Macro  -> Save.

lưu file trước khi thực hành

Bạn phải chọn đường dẫn của thư mục bằng cách mở thư mục gốc lên -> kích chuột phải vào tên thư mục ->copy -> dán vào ô thư mục cần copy trong File vừa tạo lúc nãy và nhớ thêm 1 dấu \ ở cuối.

Ở thư mục đích bạn cũng làm như vậy mở thư mục đích lên -> kích chuột phải vào tên thư mục ->copy -> dán vào ô thư mục đích trong File vừa tạo lúc nãy và nhớ thêm 1 dấu \ ở cuối.

copy thư mục đich

Trong phần Loại file cần copy nếu bạn muốn copy tất cả các loại file thì đánh vào là *.* và kết quả khi hoàn thành phần chuẩn bị.

kết quả phần đầu tiên

Bắt đầu Code chương trình copy File.

  • Mở đầu chương vẫn là Sub tên chương trình và enter để tự động sinh ra phần End Sub kết thúc chương trình.
  • Đầu tiên mình phải khai báo biến FSO biến FSO này là biến để mình có thể copy file: Dim FSO As Object
  • Khai báo biến kiểu file là kiểu file mà mình sẽ copy: Dim Kieu_file As String
  • Khai báo biến đường dẫn thư mục nguồn: Dim duong_dan_thu_muc_nguon As String
  • Khai báo biến đường dẫn thư mục đích: Dim duong_dan_thu_muc_dich As String
  • Tiếp theo mình sẽ gán đường dẫn thư mục đích tại hàng 5 cột 3 thư mục đích:  duong_dan_thu_muc_dich = ThisWorkbook.Sheets(1).Cells(5, 3) 
  • Tiếp theo mình sẽ gán đường dẫn thư mục nguồn tại hàng 3 cột 3 thư mục nguồn: duong_dan_thu_muc_nguon = ThisWorkbook.Sheets(1).Cells(3, 3)
  • Kiểu file sẽ gán hàng 7 cột 3 nơi chứa kiểu file: Kieu_file = ThisWorkbook.Sheets(1).Cells(7, 3)
  • Mình đã khai báo và gán xong thư mục gốc thư mục đích và kiểu file.

khai báo xong các thư mục

  • Bạn đặt kiểu biến FSO này làm đối tượng thao tác với file: Set FSO = CreateObject("scripting.FileSystemObject")
  • Lệnh kiểm tra thư mục gốc có tồn tại không nếu bạn đánh nhầm nó sẽ thông báo không tồn tại và kết thúc chương trình:  If FSO.FolderExists(duong_dan_thu_muc_dich) = False Then\MsgBox "khong ton tai thu muc dich"\Exit Sub\End If
  • Tương tự lệnh kiểm tra thư mục đích có tồn tại không nếu không thì thông báo không tồn tại và kết thúc chương trình: If FSO.FolderExists(duong_dan_thu_muc_nguon) = False Then\MsgBox "khong ton tai thu muc nguon"\Exit Sub\End If
  • Đến câu lệnh copy Fiel: FSO.copyFile Source:=duong_dan_thu_muc_nguon & Kieu_file, Destination:=duong_dan_thu_muc_dich
  • Hiển thị thông báo khi copy file thành công: MsgBox " da Copy thanh cong" & duong_dan_thu_muc_nguon & "tai" & duong_dan_thu_muc_dich

câu lệnh copy file

Tạo Button.

Vào thẻ Developer -> Insert -> Button -> Giữ chuột kéo -> kích vào tên chương trình -> ok -> sau đó đặt lại tên cho Button.

tạo button

Kết quả khi chạy chương trình copy file từ thư mục này sang thư mục khác.

hiện thông báo đã copy thành công

Đoạn code của chương trình Copy File từ một thư mục sang thư mục khác:

Sub copy_file()

Dim FSO As Object
Dim Kieu_file As String
Dim duong_dan_thu_muc_nguon As String
Dim duong_dan_thu_muc_dich As String

duong_dan_thu_muc_dich = ThisWorkbook.Sheets(1).Cells(5, 3)
duong_dan_thu_muc_nguon = ThisWorkbook.Sheets(1).Cells(3, 3)
Kieu_file = ThisWorkbook.Sheets(1).Cells(7, 3)
Set FSO = CreateObject("scripting.FileSystemObject")

If FSO.FolderExists(duong_dan_thu_muc_dich) = False Then
MsgBox "khong ton tai thu muc dich"
Exit Sub
End If
If FSO.FolderExists(duong_dan_thu_muc_nguon) = False Then
MsgBox "khong ton tai thu muc nguon"
Exit Sub
End If

FSO.copyFile Source:=duong_dan_thu_muc_nguon & Kieu_file, Destination:=duong_dan_thu_muc_dich
MsgBox " da Copy thanh cong" & duong_dan_thu_muc_nguon & "toi" & duong_dan_thu_muc_dich

End Sub

>> VBA Excel Cấp Tốc Bài 6 - Hướng Dẫn Sử Dụng Record Macro Trong Excel Từ Cơ Bản Đến Nâng Cao

CHO ĐIỂM BÀI VIẾT NÀY

vote data
TOP