VBA – 文本文件
您还可以阅读Excel文件,并使用VBA将单元格的内容写入文本文件. VBA允许用户使用两种方法处理文本文件 :
-
文件系统对象
-
使用Write命令
文件系统对象(FSO)
顾名思义,FSO帮助开发人员使用驱动器,文件夹和文件.在本节中,我们将讨论如何使用FSO.
| Sr.No. | 对象类型&描述 |
|---|---|
| 1 |
Drive 云端硬盘是一个对象.包含允许您收集有关连接到系统的驱动器的信息的方法和属性. |
| 2 |
Drives 驱动器是一个集合.它提供了物理或逻辑连接到系统的驱动器列表. |
| 3 |
File 文件是一个对象.它包含允许开发人员创建,删除或移动文件的方法和属性. |
| 4 |
Files 文件是一个集合.它提供了文件夹中包含的所有文件的列表. |
| 5 |
Folder 文件夹是一个对象.它提供了允许开发人员创建,删除或移动文件夹的方法和属性. |
| 6 |
Folders 文件夹是一个集合.它提供了文件夹中所有文件夹的列表. |
| 7 |
TextStream TextStream是一个Object.它使开发人员能够读写文本文件. |
驱动器
驱动器是一个对象,可以访问特定磁盘驱动器或网络共享的属性. 云端硬盘对象&减号支持以下属性;
-
AvailableSpace
-
DriveLetter
-
DriveType
-
文件系统
-
FreeSpace
-
IsReady
-
路径
-
RootFolder
-
SerialNumber
-
ShareName
-
TotalSize
-
VolumeName
示例
第1步 : 在继续使用FSO编写脚本之前,我们应该启用Microsoft Scripting Runtime.要做同样的事情,请导航到Tools → 引用如下面的屏幕截图所示.

第2步 : 添加"Microsoft Scripting RunTime"并单击"确定".

第3步 : 添加要在文本文件中写入的数据并添加命令按钮.

第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
输出
执行脚本时,请确保将光标放在工作表的第一个单元格中. Support.log文件创建如下面的屏幕截图"D:\Try"下所示.

该文件的内容显示在以下屏幕截图中.
写入命令
与FSO不同,我们不需要添加任何引用,但是,我们将无法工作与驱动器,文件和文件夹.我们将只能将流添加到文本文件中.
示例
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
输出
执行脚本时,"write.txt "文件在位置"D:\Try"中创建,如以下屏幕截图所示.

该文件的内容显示在以下屏幕截图中.
