创建文本文件后如何写入内容?提取Excel单元格数据写入未声明变量文本文件的方法
关于VBA创建文本文件并写入Excel数据的解决方案
1. 如何在创建文本文件后向其中写入内容?
其实你现有的代码已经摸到门道啦!核心就是这几个关键步骤:
- 用
Open语句创建/打开文本文件:Open 文件路径 For Output As #文件号,For Output的作用是如果文件不存在就新建,存在就覆盖原有内容 - 用
Print #文件号, 内容把需要的文本写入文件 - 最后用
Close #文件号关闭文件,确保所有内容都保存到磁盘里
你的代码里已经实现了写入"Hello"和strContent,只要strContent有有效值就能正常写入啦。
2. 提取Excel单元格数据写入文件(无文件变量的情况)
你要提取A2和它偏移(0,1)的单元格(也就是B2)的数据,即使没声明专门的文件变量,直接用你代码里的#1文件号也能操作。我把数据提取的逻辑加进去,修改后的代码如下:
Sub CreateFileandWrite() ' 提取A2和B2的内容,这里用制表符分隔,你可以换成逗号/空格等任意格式 Dim strContent As String strContent = Range("A2").Value & vbTab & Range("A2").Offset(0, 1).Value ' 打开/创建文本文件并写入内容 Open ThisWorkbook.Path & "\Test.txt" For Output As #1 Print #1, "Hello" ' 保留你原来的写入内容 Print #1, strContent ' 写入提取的Excel单元格数据 Close #1 ' 必须关闭文件,否则内容可能无法保存 End Sub
额外小提示:
- 要是不想声明
strContent变量(虽然不推荐,容易出错),也可以直接把单元格内容写在Print语句里:Print #1, Range("A2").Value & vbTab & Range("A2").Offset(0, 1).Value - 担心
#1文件号被其他程序占用?可以用FreeFile函数自动获取可用的文件号,代码会更稳妥:Sub CreateFileandWrite() Dim fileNum As Integer fileNum = FreeFile ' 自动获取未被使用的文件号 Dim strContent As String strContent = Range("A2").Value & vbTab & Range("A2").Offset(0, 1).Value Open ThisWorkbook.Path & "\Test.txt" For Output As #fileNum Print #fileNum, "Hello" Print #fileNum, strContent Close #fileNum End Sub
这样就算没特意声明“文件变量”,也能安全完成写入操作啦。
内容的提问来源于stack exchange,提问作者Nytro
相关产品推荐
相关产品推荐

