Excel VBA生成格式规整的文本文件问题求助
解决方案
先修正你代码里的几个核心错误
- 字符串变量不能用
Set赋值,直接用=即可 - VBA多行拼接字符串必须用**空格+下划线
_**作为续行符,不能直接换行 - 代码里存在多余的
&符号(比如& vbNewLine前多写了&)
方法1:标准续行符写法(适合少量行)
修正后可以正常运行的代码:
Dim txtString As String Dim input1 As String Dim input2 As String Dim input3 As String input1 = UserForm1.input1.Value input2 = UserForm1.input2.Value input3 = UserForm1.input3.Value txtString = "Hello " & input1 & vbNewLine _ & "This is " & input2 & vbNewLine _ & vbNewLine _ & "Thanks" & vbNewLine _ & input3
方法2:数组拼接法(强烈推荐28行的场景)
把每行内容单独放进数组,再用Join一次性拼接,可读性极强,后续修改或新增行也更方便:
Dim txtString As String Dim txtLines As Variant Dim input1 As String, input2 As String, input3 As String input1 = UserForm1.input1.Value input2 = UserForm1.input2.Value input3 = UserForm1.input3.Value ' 按顺序填入每行内容,空行就写空字符串 txtLines = Array( _ "Hello " & input1, _ "This is " & input2, _ "", _ "Thanks", _ input3 _ ' 28行的话继续在这里追加元素即可 ) ' 用vbNewLine把数组所有行连接成完整字符串 txtString = Join(txtLines, vbNewLine)
补充说明
如果需要兼容不同系统换行格式,也可以用vbCrLf代替vbNewLine,两种写法逻辑完全一致。
内容的提问来源于stack exchange,提问作者Turner
相关产品推荐
相关产品推荐

