HomeTin học văn phòngVí dụ về FileSystemObject trong VBA

Ví dụ về FileSystemObject trong VBA

FileSystemObject (FSO) là một trong mỗi tool trong thư viện Microsoft Scripting Runtime (scrrun.dll). Đây là một trong mỗi trong mỗi tool chuyên biệt chuyên xử lý về Drive, Folder và File. Để rõ hơn, mời game thủ đọc theo dõi một trong những mỗi ví dụ về FileSystemObject trong VBA được Taimienphi.vn dưới thiệu trong nội dung bài viết tiếp tại đây.
Sử dụng FileSystemObject trong VBA giúp người tiêu dùng giậtn giản và giậtn giản kiểm tra xem những file hoặc thư mục sở hữu tồn tại hay ko, giúp game thủ tạo thư mục mới trong vị trí đã tìm, hay sở hữu thể lđó danh sách toàn bộ những file trong một thư mục, hoặc sở hữu thể lđó danh sách toàn bộ những thư mục con trong một thư mục rõ ràng…

Cách sử dụng FileSystemObject trong VBA Excel

Ví dụ về FileSystemObject trong VBA

Dưới đấy là một trong mỗi trong mỗi ví dụ để game thủ dễ dàng mường tượng hơn nhữngh sử dụng FileSystemObject trong VBA.

Ví dụ một: Kiểm tra xem những file hoặc thư mục sở hữu tồn tại hay ko

Đoạn mã tiếp tại đây sẽ kiểm tra xem thư mục sở hữu tên Test sở hữu tồn tại hay ko trong vị trí rõ ràng đã chỉ định.

Nếu thư mục tồn tại, điều kiện IF là True và nó sẽ hiện thông tin “thư mục tồn tại” trong vỏ hộp thoại thông tin. Nếu thư mục ko tồn tại nó sẽ hiện thông tin “thư mục ko tồn tại”.

Sub CheckFolderExist()

Dim MyFSO As FileSystemObject

Set MyFSO = New FileSystemObject

If MyFSO.FolderExists(“C:UserssumitDesktopTest”) Then

MsgBox “thư mục tồn tại”

Else

MsgBox “thư mục ko tồn tại”

End If

End Sub

Tương tự, chúng ta cũng sở hữu thể kiểm tra xem một file sở hữu tồn tại hay ko.

Đoạn mã tiếp tại đây kiểm tra xem file sở hữu tên Test.xlsx sở hữu tồn tại trong thư mục rõ ràng hay ko:

Sub CheckFileExist()

Dim MyFSO As FileSystemObject

Set MyFSO = New FileSystemObject

If MyFSO.FileExists(“C:UserssumitDesktopTestTest.xlsx”) Then

MsgBox “File sở hữu tồn tại”

Else

MsgBox “File ko tồn tại”

End If

End Sub

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

Đoạn mã tiếp tại đây tạo thư mục sở hữu tên Test trong ổ C trên khối khối server (chúng ta sẽ phván chỉ định links game trên khối khối server của tôi, 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 đã tồn tại.

Đoạn mã tiếp tại đây kiểm tra xem thư mục đã tồn tại hay chưa và tạo thư mục nếu chưa sở hữu. Trong trường hợp nếu thư mục đã tồn tại, nó sẽ hiện thông tin lỗi. Để kiểm tra thư mục đã tồn tại hay chưa, chúng ta sử dụng phương thức FolderExists của FSO:

Sub taothumuc()

Dim MyFSO As FileSystemObject

Set MyFSO = New FileSystemObject

If MyFSO.FolderExists(“C:UserssumitDesktopTest”) Then

MsgBox “thư mục đã tồn tại”

Else

MyFSO.CreateFolder (“C:UserssumitDesktopTest”)

End If

End Sub

Ví dụ 3: Lđó danh sách tên toàn bộ những file trong một thư mục

Sử dụng đoạn mã tiếp tại đây để hiển thị tên của toàn bộ những file trong một thư mục rõ ràng:

Sub laytenfile ()

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 so với những đoạn mã mà Taimienphi.vn đã trình làng ở trên.

Như đã nói ở trên, lúc tham chiếu thư viện Microsoft Scripting Runtime Library, chúng ta sở hữu thể sử dụng FileSystemObject cũng như toàn bộ những tiềm năng khác (như File và Folder).

Trong đoạn mã trên, chúng ta sử dụng 3 tiềm nă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đó danh sách tên toàn bộ những file.

Lưu ý: trong đoạn mã trên chúng ta đang sử dụng Debug.Print để lđó tên của toàn bộ những 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.

Ví dụ 4: Lđó danh sách toàn bộ những thư mục con trong một thư mục rõ ràng

Đoạn mã tiếp tại đây sẽ hiển thị tên toàn bộ những thư mục con trong thư mục rõ ràng được chỉ định:

Sub laytenthumuccon ()

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

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

Đoạn mã tiếp tại đây sao chép file từ thư mục Source sang thư mục Destination:

Sub saochepfile()

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 andamp; “SampleFileCopy.xlsx”

End Sub

Trong đoạn mã trên chúng ta sử dụng 2 biến SourceFile và DestinationFolder.

Trong số đó, biến Source File giữ địa chỉ của file mà chúng ta muốn sao chép và biến DestinationFolder giữ địa chỉ của thư mục mà chúng ta muốn sao chép file vào.

Lưu ý: lúc sao chép file, nếu chỉ hỗ trợ tên thư mục đích thôi là chưa đủ. Chúng ta phván chỉ định tên file, và sở hữu thể sử dụng và một tên file hoặc thay đổi. Trong ví dụ trên Taimienphi.vn sao chép file và đặt tên là SampleFileCopy.xlsx.

Ví dụ 6: Sao chép toàn bộ những file từ thư mục này sang thư mục khác

Đoạn mã tiếp tại đây sao chép toàn bộ những file từ thư mục Source sang thư mục Destination:

Sub CopyAllFiles()

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 andamp; “” andamp; 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 đã sở hữu trong thư mục, file đó sẽ ko được sao chép. Nếu xóa Overwritefiles hoặc thiết lập giá trị trị là False, trong trường hợp nếu sở hữu những file bị trùng trong thư mục đích sở hữu và tên, những file này có năng lực sẽ bị ghi đè.

Nếu chỉ muốn sao chép những file của một tiện nghi tăng thêm rõ ràng, chúng ta sở hữu thể làm được điều này bằng nhữngh sử dụng lệnh IF Then để kiểm tra xem tiện nghi tăng thêm sở hữu phván là xlsx hay ko.

Sub CopyExcelFilesOnly()

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 andamp; “” andamp; MyFile.Name, Overwritefiles:=False

End If

Next MyFile

End Sub

Trên đấy là một trong mỗi vài ví dụ về FileSystemObject trong VBA cũng tựa giống như nhữngh sử dụng của nó. Nêu game thủ đang quyên tâm về VBA trong Excel thì ko nên bỏ phí những nội dung bài viết hay đã được Taimienphi.vn trình làng.

– Tất tần tật về VBA trong Excel Phần một
– Tất tần tật về VBA trong Excel Phần 2
– Tất tần tật về VBA trong Excel phần 3

https://thuthuat.taimienphi.vn/vi-du-ve-filesystemobject-trong-vba-46533n.aspx

Nguyễn Sơnhttps://iotstartup.vn/
Mình là Nguyễn Sơn, một freelancer lập trình web. MÌnh có đam mê viết blog để chia sẻ các kiến thức về máy tính đến quý độc giả. Mình hi vọng với những kiến thức mà mình chia sẻ sẽ giúp ích được các bạn. Cám ơn các bạn đã ghé xem blog
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Bài viết hay nhất