vba_WriteToTextFile_ADO

Sub WriteToTextFile(FileUrl, mylist As Collection, CharSet)
 Set Stm = CreateObject("adodb.stream")
 Set b = CreateObject("ADODB.Recordset")
 'MsgBox (Stm.EOS())
 
 Stm.Type = 2 
 Stm.Mode = 3
 Stm.CharSet = CharSet
 Stm.Open
 
 For Each myRow In mylist
 'MsgBox (Stm.EOS)
 Stm.WriteText myRow
 Next
 Stm.SaveToFile FileUrl, 2
 Stm.flush
 Stm.Close
 Set Stm = Nothing
End Sub
VBA 中将数据写入 `.txt` 文件是一个常见的操作,通常用于保存程序运行的结果或日志信息等。下面详细介绍如何通过 VBA 将内容写入文本文件。 --- ### **步骤说明** 1. 定义目标路径和文件名。 2. 使用 `FreeFile()` 函数获取下一个可用的文件编号。 3. 打开指定的目标文件(使用 `Open ... For Output As #...`)。 4. 向文件中写入所需的内容(使用 `Print #...` 或 `Write #...` 命令)。 5. 关闭打开的文件(使用 `Close #...`)。 --- ### **示例代码** 以下是一个简单的示例,演示如何创建并写入一个名为 `output.txt` 的文本文件: ```vba Sub WriteToTextFile() Dim filePath As String Dim fileNumber As Integer Dim content As String ' 设置文件存储路径 (请根据实际情况修改) filePath = "C:\Users\YourName\Desktop\output.txt" ' 获取空闲文件号 fileNumber = FreeFile ' 打开文件准备写入 Open filePath For Output As #fileNumber ' 要写入的内容 content = "Hello, this is a test line!" & vbCrLf content = content & "这是第二行测试文字。" ' 写入内容到文件 Print #fileNumber, content ' 关闭文件 Close #fileNumber MsgBox "成功写入文件:" & filePath End Sub ``` **注意点:** - 如果目标目录不存在,则会抛出错误;需要提前确认路径是否有效。 - 当模式选择为 `For Output` 时,若该文件已经存在则会被覆盖。如果只想追加而不覆盖现有内容,请改用 `For Append` 模式。 --- ### **补充 - 追加内容至已存在的 TXT 文件** 有时我们不需要每次都替换整个文档而是希望添加新的记录进去,这时可以用 `Append` 方式代替上面提到的 `Output`: ```vba Sub AppendToTextFile() Dim filePath As String Dim fileNumber As Integer ' 设置文件存储路径 (请根据实际情况修改) filePath = "C:\Users\YourName\Desktop\log.txt" ' 获取空闲文件号 fileNumber = FreeFile ' 打开文件以追加方式写入 Open filePath For Append As #fileNumber ' 追加一行当前时间戳及消息 Print #fileNumber, Now() & ": 新的日志条目已被添加。" ' 关闭文件 Close #fileNumber MsgBox "新日志已成功附加到文件:" & filePath End Sub ``` 此段脚本适合于像系统监控、调试跟踪这样的场合下定期向日志里增补最新事件情况而不会影响之前的记录部分。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值