VBA写入文件时添加引号等特殊字符报错问题求助
如何在VBA的Fileout.Write中写入包含引号的字符串?
嘿,这个问题我之前也踩过坑!在VBA里直接把双引号"放进字符串里的话,编译器会误以为是字符串的结束标记,自然就报错了。别担心,有两个简单又靠谱的解决方案:
方法1:用双引号转义双引号
VBA有个内置规则:在字符串字面量里,两个连续的双引号会被解析成一个实际的双引号字符。直接修改你的代码就行:
Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim Fileout As Object Set Fileout = fso.CreateTextFile("C:\users\Home\Desktop\vba.txt", True, True) ' 用两个""代替一个",实现写入带引号的内容 Fileout.Write "my string ""with quotes"" goes here" Fileout.Close
运行这段代码后,文本文件里会显示:my string "with quotes" goes here
方法2:使用Chr(34)代替双引号
双引号的ASCII码是34,所以可以用Chr(34)函数生成双引号字符,通过字符串拼接的方式插入。这种方法在需要多次插入引号或者字符串较长时,可读性更好:
Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim Fileout As Object Set Fileout = fso.CreateTextFile("C:\users\Home\Desktop\vba.txt", True, True) ' 用Chr(34)拼接出带引号的字符串 Fileout.Write "my string " & Chr(34) & "with quotes" & Chr(34) & " goes here" Fileout.Close
这段代码的效果和方法1完全一致,只是写法不同而已。
小提示:如果要写入的内容比较复杂,建议先把字符串赋值给一个变量(比如Dim outputStr As String),调试没问题后再用Fileout.Write写入,这样更容易排查问题~
内容的提问来源于stack exchange,提问作者Michael Warren
相关产品推荐
相关产品推荐

