FSO là viết tắt của FileSystemObject, FSO là 1 công cụ mạnh chuyên dùng để xử lý các vấn đề liên quan đến Drive, Folders và Files.
Khởi tạo: Muốn sử dụng FSO thì không thể thiếu đoạn code dưới đây trong chương trình:
Thuộc tính:
Drives : Nó cho biết máy tính chạy macro đang có những ổ đĩa nào.
Kết quả:
kết quả này phù hợp với thực tế:
Phương thức:
BuildPath : Nó sẽ tạo ra đường dẫn theo như chỉ định. Thực tế thư mục mới hay file mới không được tạo ra.
Để hiểu rõ hơn, hãy xem ví dụ dưới đây.
CopyFile : Cấu trúc code là:
Nó sẽ copy file từ tham số source và paste vào đường dẫn theo tham số destination.
Tuy nhiên nếu file ở source không tồn tại thì sẽ phát sinh lỗi.
Nếu chúng ta chỉ định nguồn là:
Nó sẽ copy toàn bộ file xlsx trong đường dẫn nói trên nhưng nếu đường dẫn thiếu minh bạch như sau thì sẽ xảy ra lỗi.
Đối với nơi chứa file được copy là tham số destination, nếu như trong này đã có file trùng tên, bên cạnh đó nếu như ta chỉ định tham số overwrite là True, thì việc ghi đè sẽ diễn ra, nếu để là False thì sẽ phát sinh lỗi nếu trong này đã tồn tại file trùng tên.
Nếu ta giản lược tham số Overwrite, máy tính sẽ mặc định hiểu tham số này là True.
Tham số destination nhất định phải kết thúc là dấu "\" , nếu không sẽ báo lỗi. Hoặc tham số destination là đường dẫn không hề tồn tại, cũng sẽ phát sinh lỗi.
Nguồn:
Khởi tạo: Muốn sử dụng FSO thì không thể thiếu đoạn code dưới đây trong chương trình:
Mã:
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Drives : Nó cho biết máy tính chạy macro đang có những ổ đĩa nào.
Mã:
Sub test1()
''Hien thi toan bo o dia tren may tinh
Dim FSO As Object, Drv As Variant, buf As String
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each Drv In FSO.Drives
buf = buf & Drv.DriveLetter & vbCrLf
Next Drv
MsgBox buf & "Dang duoc ket noi"
Set FSO = Nothing
End Sub
Bạn cần đăng nhập để thấy hình ảnh
kết quả này phù hợp với thực tế:
Bạn cần đăng nhập để thấy hình ảnh
Phương thức:
BuildPath : Nó sẽ tạo ra đường dẫn theo như chỉ định. Thực tế thư mục mới hay file mới không được tạo ra.
Để hiểu rõ hơn, hãy xem ví dụ dưới đây.
Mã:
Sub test2()
'Tao ra duong dan du co \ hay khong co \
Dim FSO As Object, buf As String
Const sourceFilePath As String = "C:\Temp" '<-- Khong co \
Const targetFilePath As String = "C:\Temp\" '<-- Co dau \
Const fileName As String = "Results.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Debug.Print FSO.BuildPath(sourceFilePath, fileName)
Debug.Print FSO.BuildPath(targetFilePath, fileName)
Set FSO = Nothing
End Sub
Bạn cần đăng nhập để thấy hình ảnh
CopyFile : Cấu trúc code là:
Mã:
FileSystemObject.CopyFile source, destination[, overwrite]
Tuy nhiên nếu file ở source không tồn tại thì sẽ phát sinh lỗi.
Nếu chúng ta chỉ định nguồn là:
Mã:
C:\Tmp\*.xlsx
Mã:
C:\Tmp\*\Book1.xlsx
Nếu ta giản lược tham số Overwrite, máy tính sẽ mặc định hiểu tham số này là True.
Tham số destination nhất định phải kết thúc là dấu "\" , nếu không sẽ báo lỗi. Hoặc tham số destination là đường dẫn không hề tồn tại, cũng sẽ phát sinh lỗi.
Mã:
Sub test3()
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
'Copy file tu D:\chungcu.xlsx va paste vao D:\CODE\
FSO.CopyFile "D:\chungcu.xlsx", "D:\CODE\"
'Copy file chungcu.xlsx va paste vao D\CODE\ dong thoi doi ten file la chungcu2.xlsx
FSO.CopyFile "D:\chungcu.xlsx", "D:\CODE\chungcu2.xlsx"
Set FSO = Nothing
End Sub
Bạn cần đăng nhập để thấy link