Thủ Thuật

Tìm hiểu FileSystemObject (FSO) trong VBA (Phần 2) – Honda Anh Dung

1.6 Ví dụ 6 : Sao chép toàn bộ những file từ thư mục này sang thư mục khác1.4 Ví dụ 4 : Lấy list toàn bộ những thư mục con trong một thư mục đơn cử1.3 Ví dụ 3 : Lấy list tên tổng thể những file trong một thư mục

1.2 Ví dụ 2: Tạo thư mục mới trong vị trí đã chỉ định

1.1 Ví dụ 1 : Kiểm tra xem những file hoặc thư mục có sống sót hay không

Trong bài viết Tìm hiểu FileSystemObject (FSO) trong VBA (Phần 1), Wiki HDAD đã giới thiệu cho bạn về FileSystemObject (FSO) là gì? Cách kích hoạt FileSystemObject trong VBA như thế nào? Bài viết dưới đây Taimienohi.vn sẽ giới thiệu tiếp cho bạn một số ví dụ về FileSystemObject trong VBA.

Để dễ tưởng tượng cách sử dụng FileSystemObject ( FSO ) trong VBA như thế nào, bài viết dưới đây Wiki HDAD sẽ ra mắt cho bạn một số ít ví dụ về FileSystemObject trong VBA .

Tìm hiểu FileSystemObject (FSO) trong VBA (Phần 2) - Honda Anh Dung 1

Mục Lục bài viết:
1. Ví dụ về FileSystemObject trong VBA.
     1.1. Ví dụ 1: Kiểm tra xem các file hoặc thư mục có tồn tại hay không
     1.2. Ví dụ 2: Tạo thư mục mới trong vị trí đã chỉ định
     1.3. Ví dụ 3: Lấy danh sách tên tất cả các file trong một thư mục
     1.4. Ví dụ 4: Lấy danh sách tất cả các thư mục con trong một thư mục cụ thể
     1.5. Ví dụ 5: Sao chép file từ thư mục này sang thư mục khác
     1.6. Ví dụ 6: Sao chép tất cả các file từ thư mục này sang thư mục khác

1. Ví dụ về FileSystemObject trong VBA

Dưới đây là một số ít ví dụ để bạn dễ tưởng tượng hơn cách sử dụng FileSystemObject trong VBA .

1.1 Ví dụ 1: Kiểm tra xem các file hoặc thư mục có tồn tại hay không

Đoạn mã dưới đây sẽ kiểm tra xem thư mục có tên Test có sống sót hay không trong vị trí đơn cử đã chỉ định .
Nếu thư mục sống sót, điều kiện kèm theo IF là True và nó sẽ hiển thị thông tin “ thư mục sống sót ” trong hộp thoại thông tin. Nếu thư mục không sống sót nó sẽ hiển thị thông tin “ thư mục không sống sót ” .
Sub CheckFolderExist ( )
Dim MyFSO As FileSystemObject
Set MyFSO = New FileSystemObject
If MyFSO. FolderExists ( “ C : UserssumitDesktopTest ” ) Then
MsgBox “ thư mục sống sót ”
Else
MsgBox “ thư mục không sống sót ”
End If
End Sub
Tương tự, tất cả chúng ta cũng hoàn toàn có thể kiểm tra xem một file có sống sót hay không .
Đoạn mã dưới đây kiểm tra xem file có tên Test. xlsx có sống sót trong thư mục đơn cử hay không :
Sub CheckFileExist ( )
Dim MyFSO As FileSystemObject
Set MyFSO = New FileSystemObject
If MyFSO. FileExists ( “ C : UserssumitDesktopTestTest. xlsx ” ) Then
MsgBox “ File có sống sót ”
Else
MsgBox “ File không sống sót ”
End If
End Sub

1.2 Ví dụ 2: Tạo thư mục mới trong vị trí đã chỉ định

Đoạn mã dưới đây tạo thư mục có tên Test trong ổ C trên mạng lưới hệ thống ( tất cả chúng ta sẽ phải chỉ định đường dẫn trên mạng lưới hệ thống của mình, nơi muốn tạo thư mục ) .
Sub taothumuc ( )
Dim MyFSO As FileSystemObject
Set MyFSO = New FileSystemObject
MyFSO. taothumuc ( “ C : UserssumitDesktopTest ” )
End Sub
Đoạn mã trên đây sẽ trả về thông tin lỗi trong trường hợp nếu thư mục đã sống sót .
Đoạn mã dưới đây kiểm tra xem thư mục đã sống sót hay chưa và tạo thư mục nếu chưa có. Trong trường hợp nếu thư mục đã sống sót, nó sẽ hiển thị thông tin lỗi. Để kiểm tra thư mục đã sống sót hay chưa, tất cả chúng ta sử dụng phương pháp FolderExists của FSO :
Sub taothumuc ( )
Dim MyFSO As FileSystemObject
Set MyFSO = New FileSystemObject
If MyFSO. thu muc ton tai ( “ C : UserssumitDesktopTest ” ) Then
MsgBox “ thư mục đã sống sót ”
Else
MyFSO. tao thu muc ( “ C : UserssumitDesktopTest ” )
End If
End Sub

1.3 Ví dụ 3: Lấy danh sách tên tất cả các file trong một thư mục

Sử dụng đoạn mã dưới đây để hiển thị tên của tổng thể những file trong một thư mục đơn cử :
Sub lay ten file ( )
Dim MyFSO As FileSystemObject
Dim MyFile As File
Dim MyFolder As Folder
Set MyFSO = New Scripting. FileSystemObject
Set MyFolder = MyFSO. GetFolder ( “ C : UserssumitDesktopTest ” )
For Each MyFile In MyFolder. Files
Debug. Print MyFile. Name
Next MyFile
End Sub
Đoạn mã này phức tạp hơn một chút ít so với những đoạn mã mà Wiki HDAD đã ra mắt ở trên .
Như đã đề cập ở trên, khi tham chiếu thư viện Microsoft Scripting Runtime Library, tất cả chúng ta hoàn toàn có thể sử dụng FileSystemObject cũng như tổng thể những đối tượng người dùng khác ( như File và Folder ) .

Trong đoạn mã trên, chúng ta sử dụng 3 đối tượng là FileSystemObject, File và Folder. Điều này cho phép chúng ta đi qua từng file trong thư mục được chỉ định sau đó sử dụng thuộc tính name để lấy danh sách tên tất cả các file.

Lưu ý: trong đoạn mã trên chúng ta đang sử dụng Debug.Print để lấy tên của tất cả các file. Các tên này sẽ được liệt kê và hiển thị trên cửa sổ trên VB Editor.

1.4 Ví dụ 4: Lấy danh sách tất cả các thư mục con trong một thư mục cụ thể

Đoạn mã dưới đây sẽ hiển thị tên toàn bộ những thư mục con trong thư mục đơn cử được chỉ định :
Sub lay ten thu muc con ( )
Dim MyFSO As FileSystemObject
Dim MyFile As File
Dim MyFolder As Folder
Dim MySubFolder As Folder
Set MyFSO = New Scripting. FileSystemObject
Set MyFolder = MyFSO. GetFolder ( “ C : UserssumitDesktopTest ” )
For Each MySubFolder In MyFolder. SubFolders
Debug. Print MySubFolder. Name
Next MySubFolder
End Sub

1.5 Ví dụ 5: Sao chép file từ thư mục này sang thư mục khác

Đoạn mã dưới đây sao chép file từ thư mục Source sang thư mục Destination :
Sub sao chep file ( )
Dim MyFSO As FileSystemObject
Dim SourceFile As String
Dim DestinationFolder As String
Set MyFSO = New Scripting. FileSystemObject
SourceFile = “ C : UserssumitDesktopSourceSampleFile. xlsx ”
DestinationFolder = “ C : UserssumitDesktopDestination ”
MyFSO. CopyFile Source : = SourceFile, Destination : = DestinationFolder và “ SampleFileCopy. xlsx ”
End Sub
Trong đoạn mã trên tất cả chúng ta sử dụng 2 biến SourceFile và DestinationFolder .
Trong đó, biến Source File giữ địa chỉ của file mà tất cả chúng ta muốn sao chép và biến DestinationFolder giữ địa chỉ của thư mục mà tất cả chúng ta muốn sao chép file vào .

Lưu ý: khi sao chép file, nếu chỉ cung cấp tên thư mục đích thôi là chưa đủ. Chúng ta phải chỉ định tên file, và có thể sử dụng cùng một tên file hoặc thay đổi. Trong ví dụ trên Wiki HDAD sao chép file và đặt tên là SampleFileCopy.xlsx.

1.6 Ví dụ 6: Sao chép tất cả các file từ thư mục này sang thư mục khác

Đoạn mã dưới đây sao chép tổng thể những file từ thư mục Source sang thư mục Destination :
Sub sao chep tat ca cac file ( )
Dim MyFSO As FileSystemObject
Dim MyFile As File
Dim SourceFolder As String
Dim DestinationFolder As String
Dim MyFolder As Folder
Dim MySubFolder As Folder
SourceFolder = “ C : UserssumitDesktopSource ”
DestinationFolder = “ C : UserssumitDesktopDestination ”
Set MyFSO = New Scripting. FileSystemObject
Set MyFolder = MyFSO. GetFolder ( SourceFolder )
For Each MyFile In MyFolder. Files
MyFSO. CopyFile Source : = MyFSO. GetFile ( MyFile ), _
Destination : = DestinationFolder và “ ” và MyFile. Name, Overwritefiles : = False
Next MyFile
End Sub

Lưu ý: Trong phương thức MyFSO.CopyFile, chúng ta chỉ định thuộc tính Overwritefiles là False (mặc định là True). Điều này để đảm bảo trong trường hợp nếu file đã có trong thư mục, file đó sẽ không được sao chép. Nếu xóa Overwritefiles hoặc thiết lập giá trị là False, trong trường hợp nếu có các file bị trùng trong thư mục đích có cùng tên, các file này sẽ bị ghi đè.

Nếu chỉ muốn sao chép những file của một tiện ích lan rộng ra đơn cử, tất cả chúng ta hoàn toàn có thể làm được điều này bằng cách sử dụng lệnh IF Then để kiểm tra xem tiện ích lan rộng ra có phải là xlsx hay không .
Sub chi sao chep file Excel ( )
Dim MyFSO As FileSystemObject
Dim MyFile As File
Dim SourceFolder As String
Dim DestinationFolder As String
Dim MyFolder As Folder
Dim MySubFolder As Folder
SourceFolder = “ C : UserssumitDesktopSource ”
DestinationFolder = “ C : UserssumitDesktopDestination ”
Set MyFSO = New Scripting. FileSystemObject
Set MyFolder = MyFSO. GetFolder ( SourceFolder )
For Each MyFile In MyFolder. Files
If MyFSO. GetExtensionName ( MyFile ) = “ xlsx ” Then
MyFSO. CopyFile Source : = MyFSO. GetFile ( MyFile ), _

Destination:=DestinationFolder & “” & MyFile.Name, Overwritefiles:=False

End If
Next MyFile

Bài viết tìm hiểu FileSystemObject trong VBA (Phần 2) trên đây Wiki HDAD vừa giới thiệu cho bạn một số ví dụ về FileSystemObject trong VBA. Ngoài ra bạn đọc có thể tham khảo thêm một số bài viết khác đã có trên Wiki HDAD để tìm hiểu thêm về hàm TRIM trong Excel VBA nhé.

Những bài viết liên quan

Nút quay lại đầu trang