Sử dụng FileSystemObject trong Excel VBA

Sử dụng FileSystemObject (FSO) trong Excel VBA

FileSystemObject (FSO) cung cấp cho bạn quyền truy cập vào một loạt các chức năng để truy cập vào hệ thống tệp của máy tính của bạn. Sử dụng đối tượng này, bạn có thể dễ dàng truy cập các tệp, thư mục và ổ đĩa cũng như đọc và ghi vào tệp.

Nhiều hàm FSO có thể được viết bởi bạn bằng VBA truyền thống, nhưng sẽ yêu cầu nhiều mã hóa hơn và sẽ khó khăn hơn cho một nhà phát triển sắp tới để duy trì và hiểu. FSO là một API (Giao diện Lập trình Ứng dụng) đã được thử và kiểm tra và đáng tin cậy hơn mã của riêng bạn. Nó rất dễ sử dụng và sẵn sàng và có sẵn.

FSO hoạt động theo các tiêu chuẩn và cài đặt quốc tế mà bạn có trên máy tính của mình. Nếu bạn đang phân phối ứng dụng Excel của mình trên toàn cầu thì việc sử dụng FSO sẽ quan tâm đến bất kỳ sự khác biệt nào trong cài đặt giữa các quốc gia, điều mà mã của riêng bạn sẽ gặp khó khăn khi thực hiện.

FSO sẽ cho phép bạn thực hiện hầu hết mọi thứ trong mã VBA mà bạn có thể làm trong Windows File Explorer. Nó cung cấp cho bạn quyền truy cập đầy đủ vào hệ thống tệp Windows.

Tạo một FileSystemObject

FileSytemObject không phải là một phần của Excel VBA. Bạn có thể sử dụng FSO bằng cách tạo một đối tượng (liên kết muộn) trong VBA:

123 Sub CreateFSO ()Đặt MyFSO = CreateObject ("Scripting.FileSystemObject")Kết thúc Sub

Ngoài ra, bạn có thể thêm một tham chiếu vào VBA cho thư viện FSO. Đây được gọi là liên kết sớm và nó nhanh hơn liên kết muộn, vì đối tượng không phải được tạo khi mã của bạn được chạy.

Để thêm tham chiếu, bạn cần nhấn Alt-F11 để vào Visual Basic Editor (VBE), rồi sử dụng ‘Tools | References’ từ menu VBE. Thao tác này sẽ hiển thị một cửa sổ bật lên để bạn chọn tài liệu tham khảo có liên quan (xem bên dưới).

Cuộn xuống danh sách các tham chiếu có sẵn cho đến khi bạn có thể thấy ‘Microsoft Scripting Runtime’. Đánh dấu vào hộp và nhấp vào OK, và thư viện bây giờ là một phần của ứng dụng của bạn.

Vị trí của tệp thư viện DLL là C: \ Windows \ SysWOW64 \ scrrun.dll

Nếu bạn đang phân phối ứng dụng của mình cho các đồng nghiệp hoặc vị trí khác, điều cần thiết là họ phải có tệp này ở đúng vị trí trên máy tính của họ, nếu không mã của bạn sẽ bị lỗi.

Bạn nên đặt bẫy lỗi đối với sự kiện ‘WorkbookOpen’ bằng cách sử dụng lệnh Dir để kiểm tra xem tệp có tồn tại hay không. Nếu nó vắng mặt, sau đó đưa ra thông báo cảnh báo và đóng tệp Excel.

Sau khi tham chiếu đã được thêm, bạn có thể sử dụng mã sau để tạo FSO:

123 Sub TestFSO ()Làm mờ MyFSO dưới dạng FileSystemObject mớiKết thúc Sub

Tất cả các ví dụ trong bài viết này sẽ sử dụng phương pháp luận này để tạo FSO.

FSO có sẵn nhiều phương pháp và thuộc tính. Chúng được chia ở đây thành các phần tùy theo những gì chúng có thể làm.

Sử dụng các phương thức 'tồn tại'

Bạn có thể sử dụng phương pháp FSO để kiểm tra xem ổ đĩa, thư mục hoặc tệp có tồn tại hay không. Các phương pháp này rất dễ sử dụng và chỉ yêu cầu một tham số.

123456 Kiểm tra phụ ()Làm mờ MyFSO dưới dạng FileSystemObject mớiMsgBox MyFSO.DriveExists ("C:")MsgBox MyFSO.FolderExists ("C: \ temp \")MsgBox MyFSO.FileExists ("C: \ temp \ testfile.txt")Kết thúc Sub

Tất cả các câu lệnh này sẽ trả về ‘True’ giả sử rằng máy tính của bạn có ổ C:, một thư mục trên đó có tên là ‘Temp’ và một tệp trong thư mục Temp có tên là ‘testfile.txt’.

Các chuỗi văn bản trong các tham số không phân biệt chữ hoa chữ thường. Bạn không thể sử dụng ký tự đại diện trong bất kỳ phương pháp nào trong số này.

Bạn cũng không thể sử dụng URL (Bộ định vị tài nguyên đồng nhất) để mô tả vị trí thư mục hoặc tệp. FSO hoạt động hoàn toàn trên Hệ điều hành Windows và hệ thống tệp trên đó. Đối với vị trí máy chủ bên ngoài, trước hết bạn cần ánh xạ ổ đĩa tới vị trí này, sau đó sử dụng chính đường dẫn ổ đĩa đó.

Sử dụng các phương pháp 'Nhận'

FSO có nhiều phương pháp để lấy thông tin về tệp và đường dẫn, hoặc tách đường dẫn và tệp, hoặc lấy thông tin tệp hoặc thư mục như ngày tạo hoặc ngày sửa đổi.

GetAbsolutePathname

Điều này sẽ cung cấp một đường dẫn hoàn chỉnh từ gốc của ổ đĩa được chỉ định.

Cú pháp là:

GetAbsolutePathName (pathspec)

12345 Sub AbsolutePath ()Dim MyFSO As New FileSystemObject, Pth As StringPth = "c:…"MsgBox MyFSO.GetAbsolutePathName (Pth)Kết thúc Sub

Điều này sẽ trả về một chuỗi ‘C: \ Users \ Richard \ Documents’. Điều này là do đường dẫn đã được chỉ định là C: theo sau là dấu ba chấm. Mỗi dấu chấm biểu thị một cấp độ tiếp theo trong cấu trúc thư mục.

GetBaseName

Điều này trả về tên của một tệp hoặc thư mục được chỉ định.

Cú pháp là:

GetBaseName(con đường)

12345 Tên cơ sở phụ ()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C: \ temp \ testfile.txt"MsgBox MyFSO.GetBaseName (Pth)Kết thúc Sub

Mã này sẽ trả về ‘testfile’. Phương thức trả về phần cuối cùng trong tên đường dẫn. Nếu nó là một tệp, thì nó không trả về hậu tố tệp.

Nếu không tìm thấy đường dẫn thì một chuỗi trống sẽ được trả về.

GetDrive

Điều này cho phép bạn sử dụng mã để truy cập thông tin ổ đĩa, dựa trên ký tự ổ đĩa được chỉ định.

Cú pháp là:

GetDrive (drivepec)

123456 Sub DriveInfo ()Dim MyFSO As New FileSystemObject, Pth As String, Dr As DrivePth = "C:"Đặt Dr = MyFSO.GetDrive (Pth)MsgBox Dr.FreeSpaceKết thúc Sub

Phương thức này trả về một đối tượng ổ đĩa dựa trên ổ đĩa được chỉ định. Bạn có thể sử dụng đối tượng này để truy cập thông tin về ổ đĩa, chẳng hạn như dung lượng trống có sẵn.

Bạn mệt mỏi với việc tìm kiếm ví dụ về mã VBA? Hãy thử AutoMacro!

GetDriveName

Phương thức này sẽ tách tên ổ đĩa khỏi chuỗi đường dẫn / tên tệp.

Cú pháp là:

GetDriveName (con đường)

12345 Sub DriveName ()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C: \ temp \ testfile.txt"MsgBox MyFSO.GetDriveName (Pth)Kết thúc Sub

Điều này sẽ trả về ‘C:’

GetExtensionName

Điều này sẽ trả về hậu tố tệp trong đường dẫn được chỉ định.

Cú pháp là:

GetExtensionName (con đường)

12345 Sub ExtensionName ()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C: \ temp \ testfile.txt"MsgBox MyFSO.GetExtensionName (Pth)Kết thúc Sub

Điều này sẽ trả về ‘txt’.

Nếu không có tệp nào được chỉ định, thì một chuỗi trống sẽ được trả về.

Có được file

Phương thức này trả về một đối tượng tệp, đối tượng này chứa nhiều thông tin khác nhau về chính tệp đó.

Cú pháp là:

Có được file (filespec)

123456 Sub FileInfo ()Làm mờ MyFSO dưới dạng FileSystemObject mới, Pth dưới dạng chuỗi, Fn dưới dạng tệpPth = "C: \ temp \ testfile.txt"Đặt Fn = MyFSO.GetFile (Pth)MsgBox Fn.DateCreateKết thúc Sub

Thao tác này sẽ trả về ngày và giờ mà tệp đã chỉ định được tạo. Nếu không có tệp nào được chỉ định hoặc tệp không tồn tại, bạn sẽ gặp lỗi "không tìm thấy tệp".

12345 Tên tệp phụ ()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C: \ temp \ testfile.txt"MsgBox MyFSO.GetFileName (Pth)Kết thúc Sub

Điều này sẽ trả về ‘testfile.txt’.

GetFolder

Điều này tạo một đối tượng thư mục cho thư mục cơ sở trong đường dẫn được chỉ định. Đường dẫn chỉ được chứa tên thư mục. Không có tên tệp nào phải được bao gồm nếu không sẽ xảy ra lỗi.

Cú pháp là:

GetFolder (thư mụcpec)

123456 Thư mục conInfo ()Làm mờ MyFSO dưới dạng FileSystemObject mới, Pth dưới dạng chuỗi, Fo dưới dạng thư mụcPth = "C: \ temp"Đặt Fo = MyFSO.GetFolder (Pth)MsgBox Fo.DateCreateKết thúc Sub

Đối tượng thư mục có nhiều thông tin khác nhau có thể được truy cập. Trong trường hợp này, nó trả về ngày mà thư mục được tạo.

Bạn cũng có thể sử dụng phương pháp này để truy xuất tất cả các tên tệp trong một thư mục nhất định:

12345678 Tên tệp phụ ()Làm mờ MyFSO dưới dạng FileSystemObject mới, Pth dưới dạng chuỗi, Fo dưới dạng thư mục, Fn dưới dạng tệpPth = "C: \ temp"Đặt Fo = MyFSO.GetFolder (Pth)Đối với mỗi Fn trong Fo.FilesMsgBox Fn.NameFn tiếp theoKết thúc Sub

Mã này sẽ lặp lại qua thư mục ‘Temp’ và hiển thị từng tên tệp được tìm thấy.

GetParentFolderName

Phương thức này sẽ trả về tên thư mục trong cấp độ tiếp theo trong hệ thống phân cấp thư mục.

Cú pháp là:

GetParentFolderName (con đường)

12345 Tên thư mục con ()Làm mờ MyFSO dưới dạng FileSystemObject mới, Pth dưới dạng chuỗi, Fo dưới dạng thư mụcPth = "C: \ users \ richard"MsgBox MyFSO.GetParentFolderName (Pth)Kết thúc Sub

Điều này sẽ trả về ‘Người dùng’ vì đây là ‘cha’ cho thư mục ‘richard’.

Lập trình VBA | Code Generator làm việc cho bạn!

Sử dụng các phương pháp 'Tạo'

Với FSO, bạn có thể tạo một thư mục và đường dẫn mới và tạo một tệp văn bản.

Tạo thư mục

Bạn có thể chỉ định tên đường dẫn thư mục mới sẽ được tạo. Một điều nguy hiểm của điều này là nếu thư mục đã tồn tại, thì lỗi sẽ xảy ra. Bạn có thể sử dụng phương pháp ‘FolderExists’ để đảm bảo rằng điều này sẽ không xảy ra.

Cú pháp là:

Tạo thư mục(tên thư mục)

1234567 Sub CreateNewFolder ()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C: \ temp \ MyFolder"Nếu MyFSO.FolderExists (Pth) = Sai thìMyFSO.CreateFolder (Pth)Kết thúc nếuKết thúc Sub

Đoạn mã này sẽ tạo một thư mục mới có tên là ‘MyFolder’ theo đường dẫn hiện có ‘C: \ temp’.

CreateTextFile

Phương pháp này cho phép bạn tạo một tệp văn bản đơn giản và ghi trực tiếp vào đó.

Cú pháp là:

CreateTextFile (tên tập tin, [ ghi đè lên, [ unicode ]])

1234567 Sub CreateTextFile ()Dim MyFSO As New FileSystemObject, Pth As StringPth = "C: \ temp \ Myfile.txt"Đặt Fn = MyFSO.CreateTextFile (Pth, True)Fn.Write "Thêm văn bản của riêng tôi vào đây" & vbLf & "Đây là dòng thứ hai"Fn.CloseKết thúc Sub

Mã này tạo một tệp văn bản có tên là ‘Myfile.txt’ trong thư mục ‘Temp’ của ổ ‘C:’ và sau đó ghi hai dòng văn bản vào đó.

Lưu ý rằng một ký tự nguồn cấp dữ liệu dòng được nối với chuỗi đang được viết.

Nếu đường dẫn mà bạn đang viết không tồn tại thì lỗi sẽ xảy ra. Bạn có thể sử dụng phương pháp ‘FolderExists’ để kiểm tra điều này trước khi tạo tệp.

Có một tham số tùy chọn để ghi đè lên tệp hiện có nếu được yêu cầu - điều này có thể là Đúng hoặc Sai. Mặc định là đúng.

Sử dụng các phương pháp ‘Sao chép’

Bạn có thể sử dụng các phương pháp này để sao chép một tệp hoặc một thư mục sang một vị trí khác.

Lập trình VBA | Code Generator làm việc cho bạn!

CopyFile

Phương pháp này sẽ sao chép một tệp từ vị trí thư mục này sang vị trí thư mục khác. Lưu ý rằng bản sao sẽ không thành công nếu vị trí đích có bộ thuộc tính chỉ đọc.

Cú pháp là:

CopyFile nguồn, điểm đến, [ ghi đè lên ]

1234 Sub CopyFile ()Làm mờ MyFSO dưới dạng FileSystemObject mớiMyFSO.CopyFile "C: \ temp \ *. Txt", "C: \ temp \ myfolder \", TrueKết thúc Sub

Mã này sẽ tạo một bản sao của tất cả các tệp văn bản (txt) tại ‘C: \ temp’ thành ‘C: \ temp \ myfolder \’, ghi đè lên tệp khi cần thiết. Cài đặt mặc định cho Ghi đè là Đúng.

Bạn có thể sử dụng ký tự đại diện dấu hoa thị (*) cho tên tệp, nhưng bạn không thể sử dụng ký tự đại diện dấu hỏi (?) Để đại diện cho các ký tự đơn lẻ.

Sao chép các tệp tin

Bạn có thể sử dụng phương pháp này để sao chép toàn bộ thư mục từ vị trí này sang vị trí khác.

Cú pháp là:

Sao chép các tệp tin nguồn, điểm đến, [ ghi đè lên ]

1234 Sub CopyFolder ()Làm mờ MyFSO dưới dạng FileSystemObject mớiMyFSO.CopyFolder "C: \ temp \ *", "C: \ users \ richard \"Kết thúc Sub

Mã này sao chép tất cả các thư mục và tệp bên dưới ‘C: \ temp’ vào ‘C: \ users \ richard’. Thư mục mới được tạo sẽ là ‘C: \ users \ richard \ myfolder’ vì ‘C: \ temp’ có một thư mục bên trong nó được gọi là ‘myfolder’.

Có bốn kết quả có thể xảy ra khi sử dụng phương pháp này:

  • Nếu đích không tồn tại, thì thư mục nguồn và nội dung sẽ được sao chép.
  • Nếu đích đã tồn tại, thì sẽ xảy ra lỗi.
  • Nếu đích là một thư mục, thì thư mục nguồn và nội dung của nó sẽ được sao chép. Lỗi sẽ xảy ra nếu Ghi đè được đặt thành Sai và đã có một bản sao của tệp trong đích.
  • Nếu đích được đặt thành chỉ đọc, sẽ xảy ra lỗi nếu ghi đè được đặt thành false.

Phương pháp này dừng lại ở lỗi đầu tiên mà nó gặp phải. Không có bất kỳ hành động nào đã thành công trước khi lỗi xảy ra.

Sử dụng các phương pháp 'Di chuyển'

Các phương pháp này có thể được sử dụng để di chuyển tệp hoặc thư mục đến các vị trí khác. Điều này cũng giống như việc cắt từ một vị trí và dán vào một vị trí khác. Lưu ý rằng nếu tệp được di chuyển đang mở, thì phương pháp Di chuyển sẽ không thành công với một lỗi.

Di chuyển tệp tin

Phương pháp này được sử dụng để di chuyển một tệp cụ thể đến một vị trí khác. Các ký tự đại diện được phép trong thành phần đường dẫn cuối cùng của nguồn.

Cú pháp là:

Di chuyển tệp tin nguồn, điểm đến

1234 Sub MoveAFile ()Làm mờ MyFSO dưới dạng FileSystemObject mớiMyFSO.MoveFile "C: \ temp \ *", "C: \ temp \ myfolder"Kết thúc Sub

Mã này di chuyển tất cả các tệp được tìm thấy tại ‘C: \ temp’ thành ‘C: \ temp \ myfolder’.

Các thư mục nguồn và đích phải tồn tại, vì thư mục đích không tự động được tạo.

Phương pháp này dừng lại ở lỗi đầu tiên mà nó gặp phải. Không có bất kỳ hành động nào đã thành công trước khi lỗi xảy ra.

Lập trình VBA | Code Generator làm việc cho bạn!

Di chuyển thư mục

Phương pháp này di chuyển một thư mục cụ thể từ vị trí này sang vị trí khác.

Cú pháp là:

Di chuyển thư mục (nguồn, điểm đến)

1234 Sub MoveAFolder ()Làm mờ MyFSO dưới dạng FileSystemObject mớiMyFSO.MoveFolder "C: \ temp \ myfolder", "C: \ temp \ mydestination"Kết thúc Sub

Mã này di chuyển thư mục ‘myfolder’ và nội dung vào thư mục ‘mydestination’. ‘Myfolder’ bị xóa hiệu quả và ‘mydestination’ được tạo cùng với nội dung từ ‘myfolder’.

Nếu thư mục đích đã tồn tại thì sẽ xảy ra lỗi.

Sử dụng các phương pháp ‘Xóa’

Các phương pháp này được sử dụng để xóa tệp hoặc thư mục. Chúng phải được sử dụng cẩn thận vì không có phương pháp khôi phục hoặc hoàn tác nếu có gì sai.

Xóa tài liệu

Thao tác này sẽ xóa các tệp riêng lẻ hoặc một nhóm tệp sử dụng ký tự đại diện.

Cú pháp là:

Xóa tài liệu filespec, [ lực lượng ]

1234 Sub DeleteFiles ()Làm mờ MyFSO dưới dạng FileSystemObject mớiMyFSO.DeleteFile "C: \ temp \ *"Kết thúc Sub

Mã này sẽ xóa tất cả các tệp trong thư mục ‘C: \ temp’

Tham số Force là tùy chọn và được đặt thành True hoặc False. Nếu nó được đặt thành True, thì các tệp chỉ đọc sẽ bị xóa. Mặc định này sai.

Xóa thư mục

Phương pháp này xóa một thư mục cụ thể và nội dung của nó.

Cú pháp là:

Xóa thư mục thư mụcpec, [ lực lượng ]

1234 Sub DeleteFolders ()Làm mờ MyFSO dưới dạng FileSystemObject mớiMyFSO.DeleteFolder "C: \ temp \ MyDestination"Kết thúc Sub

Mã này sẽ xóa thư mục ‘MyDestination’ và tất cả các tệp trong thư mục đó. Thư mục ‘tạm thời’ sẽ vẫn còn.

Tham số Force là tùy chọn và được đặt thành True hoặc False. Nếu nó được đặt thành True, thì các thư mục chỉ đọc sẽ bị xóa. Mặc định này sai.

Các ký tự đại diện có thể được sử dụng trong thành phần cuối cùng của đường dẫn. Nếu thư mục không được tìm thấy thì sẽ xảy ra lỗi.

Phương pháp này dừng lại ở lỗi đầu tiên mà nó gặp phải. Không có bất kỳ hành động nào đã thành công trước khi lỗi xảy ra.

Lập trình VBA | Code Generator làm việc cho bạn!

Các phương pháp khác trong FSO

OpenAsTextStream.

Phương thức này mở một tệp được chỉ định dưới dạng đối tượng Dòng văn bản và cho phép đọc hoặc ghi tệp đó vào. Ưu điểm của phương pháp này là có thể mở bất kỳ loại tệp nào và trích xuất văn bản có sẵn.

Cú pháp là:

OpenAsTextStream ([ iomode, [ định dạng ]])

Tham số ‘iomode’ cho phép chỉ đọc (1), đọc / ghi (2) và thêm vào (8). Tham số đọc / ghi ghi đè lên tệp.

Tham số ‘format’ được đặt thành -2 cho mặc định của hệ thống, -1 để mở tệp dưới dạng Unicode và 0 để mở tệp dưới dạng ASCII (Mã tiêu chuẩn Hoa Kỳ cho trao đổi thông tin).

1234567891011 Sub TextStream ()Làm mờ MyFSO dưới dạng FileSystemObject mớiĐặt f = MyFSO.GetFile ("C: \ temp \ myfile.txt")Đặt ts = f.OpenAsTextStream (2)ts.Viết "Văn bản mới của tôi"ts.CloseĐặt ts = f.OpenAsTextStream (1)s = ts.ReadLineMsgBox sts.CloseKết thúc Sub

Mã này lấy một tệp văn bản hiện có và tạo nó dưới dạng một đối tượng bằng phương thức ‘GetFile’. Sau đó, nó sẽ mở luồng văn bản dưới dạng đọc / ghi (2) và viết một dòng văn bản. Sau đó, tệp được đóng và mở lại dưới dạng đọc (1) và một dòng được đọc từ tệp, sau đó được hiển thị dưới dạng hộp thông báo.

Lưu ý rằng dòng đọc phải được đặt trong một biến trước khi nó có thể được hiển thị trong hộp thông báo.

BuildPath

Phương pháp này sẽ nối một thư mục hoặc tên tệp vào cuối đường dẫn thư mục hiện có. Thao tác này chỉ tạo một chuỗi văn bản và không thực sự tạo thư mục mới.

Cú pháp là:

BuildPath (con đường, Tên)

12345 Sub BuildPth ()Làm mờ MyFSO dưới dạng FileSystemObject mớinp = MyFSO.BuildPath ("C: \ temp", "ANewFolder")MsgBox npKết thúc Sub

Điều này sẽ hiển thị ‘C: \ temp \ ANewFolder’. Tuy nhiên, nếu bạn muốn thực sự sử dụng thư mục này, bạn cần sử dụng phương thức ‘CreateFolder’.

OpenTextFile

Phương pháp này cho phép các tệp được mở và đọc từ hoặc ghi theo các tham số đã thiết lập. Nó hoạt động theo cách tương tự như phương thức OpenAsTextStream.

Cú pháp là:

OpenTextFile (tên tập tin, [ iomode, [ tạo ra, [ định dạng ]]])

Tham số ‘iomode’ cho phép ForReading, ForWriting và ForAppending. Tham số ForWriting ghi đè lên tệp.

Tham số ‘create’ là một giá trị Boolean. Đúng nghĩa là một tệp mới sẽ được tạo nếu tên tệp được chỉ định không tồn tại. Sai có nghĩa là không có tệp nào được tạo nếu không tìm thấy tên tệp. Mặc định này sai.

Tham số ‘format’ có thể được đặt thành TristateFalse, TristateMixed, TristateTrue và TristateUseDefault tùy thuộc vào việc tệp là ASCII hay Unicode.

1234567 Sub OpenTxtFile ()Làm mờ MyFSO dưới dạng FileSystemObject mớiĐặt ts = MyFSO.OpenTextFile ("C: \ temp \ myfile.txt", ForReading, False, TristateUseDefault)s = ts.ReadLineMsgBox sts.CloseKết thúc Sub

Mã này sẽ đọc một dòng từ tệp văn bản ‘myfile.txt’.

Một lợi thế mà phương thức OpenTextFile có so với OpenAsTextStreamMethod là nó có các tham số thả xuống, điều này có ý nghĩa hơn việc cố gắng nhớ các giá trị số thích hợp cho các tùy chọn tham số khác nhau.

Lập trình VBA | Code Generator làm việc cho bạn!

Thuộc tính của FSO

Ổ đĩa

Thuộc tính này chứa một bộ sưu tập các ổ đĩa có sẵn trên máy tính của bạn.

1234567 Sub Drv ()Làm mờ MyFSO dưới dạng FileSystemObject mới, d Như DriveĐặt Dr = MyFSO.DrivesĐối với mỗi d Trong DrMsgBox d.DriveLetterTiếp theo dKết thúc Sub

Mã này sẽ trả về từng ký tự ổ đĩa có sẵn trên máy tính của bạn.

Tên

Điều này trả về tên của một tệp hoặc thư mục được chỉ định.

123456789 Tên phụVí dụ ()Làm mờ MyFSO dưới dạng FileSystemObject mớiĐặt f = MyFSO.GetFile ("C: \ temp \ myfile.txt")i = f.Name & "trên Drive" & UCase (f.Drive) & vbCrLfi = i & "Created:" & f.DateCreate & vbCrLfi = i & "Truy cập lần cuối:" & f.DateLastAccessed & vbCrLfi = i & "Last Modified:" & f.DateLastModifiedMsgBox iKết thúc Sub

Mã này sẽ cung cấp tên của tệp và thông tin về tệp bằng thuộc tính Drive.

Con đường

Thuộc tính Path sẽ tách đường dẫn ra khỏi đặc tả tệp.

123456789 Đường dẫn phụExample ()Làm mờ MyFSO dưới dạng FileSystemObject mớiĐặt f = MyFSO.GetFile ("C: \ temp \ myfile.txt")i = f.Path & f.Name & "trên Drive" & UCase (f.Drive) & vbCrLfi = i & "Created:" & f.DateCreate & vbCrLfi = i & "Truy cập lần cuối:" & f.DateLastAccessed & vbCrLfi = i & "Last Modified:" & f.DateLastModifiedMsgBox iKết thúc Sub

Ví dụ này hoạt động theo cách tương tự như ví dụ Tên, ngoại trừ việc bây giờ nó cung cấp đường dẫn cho tệp.

Lập trình VBA | Code Generator làm việc cho bạn!

Kích thước

Thuộc tính Size sẽ cung cấp kích thước của một thư mục hoặc một tệp.

12345 FSize phụ ()Làm mờ MyFSO dưới dạng FileSystemObject mớiĐặt f = MyFSO.GetFolder ("C: \ temp \")MsgBox f.SizeKết thúc Sub

Đoạn mã trên sẽ trả về kích thước của thư mục ‘C: \ temp \’.

12345 FSize phụ ()Làm mờ MyFSO dưới dạng FileSystemObject mớiĐặt f = MyFSO.GetFile ("C: \ temp \ myfile.txt")MsgBox f.SizeKết thúc Sub

Đoạn mã trên sẽ trả về kích thước của tệp ‘myfile.txt’.

Kiểu

Thuộc tính type sẽ trả về văn bản cho loại tệp hoặc thư mục.

12345 Sub FType ()Làm mờ MyFSO dưới dạng FileSystemObject mớiĐặt f = MyFSO.GetFolder ("C: \ temp \")MsgBox f.TypeKết thúc Sub

Đoạn mã trên sẽ trả về văn bản ‘Thư mục tệp’.

12345 Sub FType ()Làm mờ MyFSO dưới dạng FileSystemObject mớiĐặt f = MyFSO.GetFile ("C: \ temp \ myfile.txt")MsgBox f.TypeKết thúc Sub

Đoạn mã trên sẽ trả về văn bản ‘Tài liệu văn bản’.

Lưu ý việc sử dụng ‘GetFolder’ và ‘GetFile’ trong mỗi ví dụ.

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave