Text 文件
您还可以阅读Excel文件,并使用VBA将单元格的内容写入文本文件。 VBA允许用户使用两种方法处理文本文件 -
- 文件系统对象
- 使用Write命令
File System Object (FSO)
顾名思义,FSO帮助开发人员处理驱动器,文件夹和文件。 在本节中,我们将讨论如何使用FSO。
S.No. | 对象类型和描述 |
---|---|
1 | Drive Drive是一个对象。 包含允许您收集有关连接到系统的驱动器的信息的方法和属性。 |
2 | Drives Drives是一个集合。 它提供了物理或逻辑上附加到系统的驱动器列表。 |
3 | File 文件是一个对象。 它包含允许开发人员创建,删除或移动文件的方法和属性。 |
4 | Files 文件是一个集合。 它提供了文件夹中包含的所有文件的列表。 |
5 | Folder 文件夹是一个对象。 它提供了允许开发人员创建,删除或移动文件夹的方法和属性。 |
6 | Folders 文件夹是一个集合。 它提供了文件夹中所有文件夹的列表。 |
7 | TextStream TextStream是一个Object。 它使开发人员能够读写文本文件。 |
Drive
Drive是一个对象,可以访问特定磁盘驱动器或网络共享的属性。 Drive对象支持以下属性 -
- AvailableSpace
- DriveLetter
- DriveType
- FileSystem
- FreeSpace
- IsReady
- Path
- RootFolder
- SerialNumber
- ShareName
- TotalSize
- VolumeName
例子 (Example)
Step 1 - 在使用FSO继续编写脚本之前,我们应该启用Microsoft Scripting Runtime。 要执行相同操作,请导航到工具→参考,如以下屏幕截图所示。
Step 2 - 添加“Microsoft Scripting RunTime”并单击“确定”。
Step 3 - 添加要在文本文件中写入的数据并添加命令按钮。
Step 4 - 现在是脚本的时候了。
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
输出 (Output)
执行脚本时,请确保将光标放在工作表的第一个单元格中。 创建Support.log文件,如以下屏幕截图“D:\Try”下所示。
该文件的内容显示在以下屏幕截图中。
Write Command
与FSO不同,我们不需要添加任何引用,但是,我们将无法使用驱动器,文件和文件夹。 我们将只能将流添加到文本文件中。
例子 (Example)
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
输出 (Output)
执行脚本后,将在“D:\Try”位置创建“write.txt”文件,如以下屏幕截图所示。
该文件的内容显示在以下屏幕截图中。