- VBA Tutorial
- VBA - Home
- VBA - Overview
- VBA - Excel Macros
- VBA - Excel Terms
- VBA - Macro Comments
- VBA - Message Box
- VBA - Input Box
- VBA - Variables
- VBA - Constants
- VBA - Operators
- VBA - Decisions
- VBA - Loops
- VBA - Strings
- VBA - Date and Time
- VBA - Arrays
- VBA - Functions
- VBA - Sub Procedure
- VBA - Events
- VBA - Error Handling
- VBA - Excel Objects
- VBA - Text Files
- VBA - Programming Charts
- VBA - Userforms
- VBA Useful Resources
- VBA - Quick Guide
- VBA - Useful Resources
- VBA - Discussion
VBA - 文本文件
您还可以使用 VBA 读取 Excel 文件并将单元格内容写入文本文件。VBA 允许用户使用两种方法处理文本文件 -
- 文件系统对象
- 使用写命令
文件系统对象 (FSO)
顾名思义,FSO 帮助开发人员使用驱动器、文件夹和文件。在本节中,我们将讨论如何使用 FSO。
| 先生。 | 对象类型和描述 |
|---|---|
| 1 |
驾驶 驱动器是一个对象。包含允许您收集有关连接到系统的驱动器的信息的方法和属性。 |
| 2 |
驱动器 驱动器是一个集合。它提供物理或逻辑连接到系统的驱动器列表。 |
| 3 |
文件 文件是一个对象。它包含允许开发人员创建、删除或移动文件的方法和属性。 |
| 4 |
文件 文件是一个集合。它提供文件夹中包含的所有文件的列表。 |
| 5 |
文件夹 文件夹是一个对象。它提供了允许开发人员创建、删除或移动文件夹的方法和属性。 |
| 6 |
文件夹 文件夹是一个集合。它提供文件夹内所有文件夹的列表。 |
| 7 |
文本流 TextStream 是一个对象。它使开发人员能够读取和写入文本文件。 |
驾驶
驱动器是一个对象,它提供对特定磁盘驱动器或网络共享的属性的访问。Drive对象支持以下属性-
- 可用空间
- 盘符
- 驱动器类型
- 文件系统
- 可用空间
- 准备好了
- 小路
- 根文件夹
- 序列号
- 共享名
- 总尺寸
- 卷名
例子
步骤 1 - 在继续使用 FSO 编写脚本之前,我们应该启用 Microsoft Scripting Runtime。要执行相同的操作,请导航至“工具”→“参考”,如以下屏幕截图所示。
步骤 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
输出
执行脚本时,请确保将光标放在工作表的第一个单元格中。将在“D:\Try”下创建 Support.log 文件,如以下屏幕截图所示。
文件的内容如以下屏幕截图所示。
写命令
与 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
输出
执行脚本后,将在位置“D:\Try”中创建“write.txt”文件,如以下屏幕截图所示。
该文件的内容如以下屏幕截图所示。

