VBA - Tệp văn bản
Bạn cũng có thể đọc Tệp Excel và ghi nội dung của ô vào Tệp Văn bản bằng VBA. VBA cho phép người dùng làm việc với các tệp văn bản bằng hai phương pháp:
- Đối tượng hệ thống tệp
- sử dụng lệnh Viết
Đối tượng Hệ thống Tệp (FSO)
Như tên cho thấy, FSO giúp các nhà phát triển làm việc với ổ đĩa, thư mục và tệp. Trong phần này, chúng ta sẽ thảo luận về cách sử dụng FSO.
Sr.No. | Loại đối tượng & Mô tả |
---|---|
1 | Drive Ổ đĩa là một Đối tượng. Chứa các phương thức và thuộc tính cho phép bạn thu thập thông tin về một ổ đĩa được gắn vào hệ thống. |
2 | Drives Ổ đĩa là một Bộ sưu tập. Nó cung cấp danh sách các ổ đĩa được gắn vào hệ thống, về mặt vật lý hoặc logic. |
3 | File Tệp là một đối tượng. Nó chứa các phương thức và thuộc tính cho phép các nhà phát triển tạo, xóa hoặc di chuyển một tệp. |
4 | Files Tệp là một Bộ sưu tập. Nó cung cấp danh sách tất cả các tệp có trong một thư mục. |
5 | Folder Thư mục là một Đối tượng. Nó cung cấp các phương thức và thuộc tính cho phép các nhà phát triển tạo, xóa hoặc di chuyển các thư mục. |
6 | Folders Thư mục là một Bộ sưu tập. Nó cung cấp danh sách tất cả các thư mục trong một thư mục. |
7 | TextStream TextStream là một đối tượng. Nó cho phép các nhà phát triển đọc và ghi các tệp văn bản. |
Lái xe
Drivelà một đối tượng, cung cấp quyền truy cập vào các thuộc tính của một ổ đĩa cụ thể hoặc chia sẻ mạng. Các thuộc tính sau được hỗ trợ bởiDrive đối tượng -
- AvailableSpace
- DriveLetter
- DriveType
- FileSystem
- FreeSpace
- IsReady
- Path
- RootFolder
- SerialNumber
- ShareName
- TotalSize
- VolumeName
Thí dụ
Step 1- Trước khi tiến hành viết script bằng FSO, chúng ta nên kích hoạt Microsoft Scripting Runtime. Để làm tương tự, hãy điều hướng đến Công cụ → Tham khảo như được hiển thị trong ảnh chụp màn hình sau.
Step 2 - Thêm "Microsoft Scripting RunTime" và Click OK.
Step 3 - Thêm dữ liệu mà bạn muốn ghi vào tệp văn bản và thêm nút lệnh.
Step 4 - Bây giờ là lúc để Script.
Private Sub fn_write_to_text_Click()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
Dim fso As FileSystemObject
Set fso = New FileSystemObject
Dim stream As TextStream
LastCol = ActiveSheet.UsedRange.Columns.Count
LastRow = ActiveSheet.UsedRange.Rows.Count
' Create a TextStream.
Set stream = fso.OpenTextFile("D:\Try\Support.log", ForWriting, True)
CellData = ""
For i = 1 To LastRow
For j = 1 To LastCol
CellData = Trim(ActiveCell(i, j).Value)
stream.WriteLine "The Value at location (" & i & "," & j & ")" & CellData
Next j
Next i
stream.Close
MsgBox ("Job Done")
End Sub
Đầu ra
Khi thực thi tập lệnh, hãy đảm bảo rằng bạn đặt con trỏ vào ô đầu tiên của trang tính. Tệp Support.log được tạo như thể hiện trong ảnh chụp màn hình sau trong "D: \ Try".
Nội dung của tệp được hiển thị trong ảnh chụp màn hình sau.
Viết lệnh
Không giống như FSO, chúng tôi KHÔNG cần thêm bất kỳ tham chiếu nào, tuy nhiên, chúng tôi sẽ KHÔNG thể làm việc với ổ đĩa, tệp và thư mục. Chúng tôi sẽ có thể chỉ thêm luồng vào tệp văn bản.
Thí dụ
Private Sub fn_write_to_text_Click()
Dim FilePath As String
Dim CellData As String
Dim LastCol As Long
Dim LastRow As Long
LastCol = ActiveSheet.UsedRange.Columns.Count
LastRow = ActiveSheet.UsedRange.Rows.Count
FilePath = "D:\Try\write.txt"
Open FilePath For Output As #2
CellData = ""
For i = 1 To LastRow
For j = 1 To LastCol
CellData = "The Value at location (" & i & "," & j & ")" & Trim(ActiveCell(i, j).Value)
Write #2, CellData
Next j
Next i
Close #2
MsgBox ("Job Done")
End Sub
Đầu ra
Sau khi thực thi tập lệnh, tệp "write.txt" được tạo ở vị trí "D: \ Try" như thể hiện trong ảnh chụp màn hình sau.
Nội dung của tệp được hiển thị trong ảnh chụp màn hình sau.