2017-04-19 58 views
0

我在VBA(单词)上创建了一个用户表单,用户在其中输入多行文本到TextBox1中。我希望将其转换为单行字符串。我曾尝试以下:如何将多行字符串输入从文本框(在用户表单中)转换为单行输入字符串(vba单词)

'Replace method 
TextBox1.Text = TextBox1.Text.Replace what:=vbFl replacement:="" 

这将导致“无效的限定词”与问候的。文本

'Replace function 
TextBox1.Text = Replace(TextBox1.Text, vbLf, "") 

这不会产生任何错误,但不进行必要的转换。

+0

你的第二次尝试具有正确的语法这就是为什么它不产生一个错误,但是什么字符串没有找到,因为vbLf是一个长期的,而不是字符串,尽管VBA可能设法将数字强制转换为字符串,但它不是您正在查找的数字。关闭我的头顶,我不知道TextBox使用哪个字符串。它可能是Chr(10)或Chr(11),也可能是Chr(10)和Chr(13) - 或者相反。你可以像这样输入:What:= Chr(11)' – Variatus

+0

@Variatus'vbLF'无疑是一个字符串。这只是不正确的字符串在这种情况下使用,显然:)(尝试'?TypeName(vbLF)'在立即窗口中,如果你愿意的话) –

+0

谢谢@David Zemens。看起来可能是骗人的,然后:-) – Variatus

回答

1

在Word中,您也必须考虑回车。有三种方法做它自己的方式:

'Replace function 
TextBox1.Text = Replace(TextBox1.Text, vbCr + vbLf, "") 
TextBox1.Text = Replace(TextBox1.Text, Chr(10) + Chr(13), "") 
TextBox1.Text = Replace(TextBox1.Text, vbCrLf, "") 
相关问题