【问题标题】:How to convert a multi line string input from an textbox (in a userform) to a single line input string (vba word)如何将文本框(在用户表单中)的多行字符串输入转换为单行输入字符串(vba word)
【发布时间】: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


【解决方案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, "")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多