【发布时间】:2017-09-15 11:04:45
【问题描述】:
我在 VBA (word) 上创建了一个用户表单,用户将多行文本正文输入到 TextBox1。我希望将其转换为单行字符串。我尝试了以下方法:
'Replace method
TextBox1.Text = TextBox1.Text.Replace what:=vbFl replacement:=""
这会导致 .Text 出现“无效的限定符”
'Replace function
TextBox1.Text = Replace(TextBox1.Text, vbLf, "")
这不会产生错误,但不会执行所需的转换。
【问题讨论】:
-
您的第二次尝试具有正确的语法,这就是它不会产生错误的原因,但由于 vbLf 是一个长字符串,而不是字符串,尽管 VBA 可能会管理将数字强制转换为字符串,它不是您要查找的数字。我不知道 TextBox 使用哪个字符串。它可能是 Chr(10) 或 Chr(11) 或者可能是 Chr(10) & Chr(13) - 或者相反。你可以输入这个像
What:=Chr(11) -
@Variatus
vbLF无疑是一个字符串。显然,这不是在这种情况下使用的正确字符串:)(如果您愿意,请在“立即”窗口中尝试?TypeName(vbLF)) -
谢谢@David Zemens。看起来可能是骗人的,然后:-)
标签: vba ms-word textbox userform multilinestring