📅  最后修改于: 2023-12-03 15:24:10.007000             🧑  作者: Mango
在 Excel VBA 中,我们可以利用 File System Object (FSO) 对象来写入文本文件。下面是一个简单的示例代码:
Sub WriteToFile(ByVal FilePath As String, ByVal TextToWrite As String)
Dim FSO As Object
Dim FileObj As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FileObj = FSO.CreateTextFile(FilePath)
FileObj.Write TextToWrite
FileObj.Close
End Sub
代码解释:
首先,我们定义一个 Sub
过程,该过程接受两个参数:FilePath
和 TextToWrite
。
我们创建一个 FSO 对象并将其赋值给变量 FSO
。
然后,我们使用 CreateObject
方法创建一个文本文件对象,并将其赋值给变量 FileObj
。
接着,我们使用 Write
方法将 TextToWrite
写入文件。
最后,我们使用 Close
方法关闭文本文件对象。
示例:
Sub Test()
Dim FilePath As String
Dim TextToWrite As String
FilePath = "C:\Users\Username\Desktop\Test.txt"
TextToWrite = "Hello, world"
WriteToFile FilePath, TextToWrite
End Sub
这里 Test
过程将 FilePath
和 TextToWrite
参数设置为一个本地文件路径和一个要写入文件的文本字符串。在执行 WriteToFile
过程后,您将在 Test.txt
文件中看到 "Hello, world" 的文本。
如果你要写入多行文本数据,你可以将它们拼接成一个字符串并写入文件。以下代码演示了如何将一个数组中的多行文本数据拼接到一个字符串中,并将该字符串写入一个文本文件。
Sub WriteRowsToFile(ByVal FilePath As String, ByVal RowsToWrite As Variant)
Dim FSO As Object
Dim FileObj As Object
Dim TextToWrite As String
Dim i As Long
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FileObj = FSO.CreateTextFile(FilePath)
For i = 1 To UBound(RowsToWrite)
TextToWrite = TextToWrite & RowsToWrite(i, 1) & vbCrLf
Next i
FileObj.Write TextToWrite
FileObj.Close
End Sub
代码解释:
我们定义了一个新的 Sub
过程 WriteRowsToFile
,它接受两个参数:FilePath
和 RowsToWrite
。
我们创建了一个 TextToWrite
变量和一个 i
变量以遍历 RowsToWrite
。
在循环中,我们将每一行拼接到 TextToWrite
字符串中,并添加 vbCrLf
换行符。
最后,我们将 TextToWrite
写入文件并关闭文本文件对象。
示例:
Sub Test()
Dim FilePath As String
Dim RowsToWrite As Variant
FilePath = "C:\Users\Username\Desktop\Test.txt"
RowsToWrite = Array("Line 1", "Line 2", "Line 3")
WriteRowsToFile FilePath, RowsToWrite
End Sub
这里 Test
过程将 FilePath
和 RowsToWrite
参数设置为一个本地文件路径和一个要写入文件的文本数组。在执行 WriteRowsToFile
过程后,你将在 Test.txt
文件中看到以下文本:
Line 1
Line 2
Line 3
以上是在 Excel VBA 中将数据写入文本文件的方式。您可以使用这些代码将单行或多行文本数据写入文件。记得使用文本编辑器打开新创建的文本文件,查看您的输出结果。