代码之家  ›  专栏  ›  技术社区  ›  Todd Main

这个奇怪的角色是什么?我怎样才能摆脱它?

  •  0
  • Todd Main  · 技术社区  · 14 年前

    这在.NET和VBA中都会显示。男性标志:

    mo fo

    你会注意到第4、5、6、8、10和12行有一个额外的字符。这是一个段落标记。在第3行是制表符,但它只显示为空格。

    .TextRange.Text 在PowerPoint中。上面是VBE中的即时窗口,但当我尝试将文本放入控件(如ListView)时,它也会显示.NET控件。

    Sub Replicate()
        Dim ap As Presentation: Set ap = ActivePresentation
        Dim sl As Slide: Set sl = ap.Slides(1)
        sl.Shapes.Title.TextFrame.TextRange.Text = "One bad" & vbCrLf & "MOFO"
        Debug.Print s.Shapes.Title.TextFrame.TextRange.Text
    End Sub
    

    我怎样才能摆脱这个(即,在男性标志处什么也不显示)?这是我的控件或字符串上的正则表达式的某种Unicode设置还是。。。?

    3 回复  |  直到 14 年前
        1
  •  0
  •   Stan    14 年前

    这篇文章会有帮助的 Exploring the PowerPoint TextRange Object ,但请注意,当它来自标题占位符时,它是Chr(11)而不是Chr(13)。你可以用 TextRange.Replace(ChrW(11), " ") 把它弄干净。

        2
  •  0
  •   Brent Arias    14 年前

    听起来Powerpoint使用的回车换行方式与VB使用的不同。您可能需要用不同的换行约定替换vbCrLf(创建自己的字节数组对以插入)。

        3
  •  0
  •   Preet Sangha    14 年前

    而不是 vbCrLf 用这个 vbLf & vbCr

    Sub Replicate()
        Dim ap As Presentation: Set ap = ActivePresentation
        Dim sl As Slide: Set sl = ap.Slides(1)
        sl.Shapes.Title.TextFrame.TextRange.Text = "One bad" & vbLf & vbCr & "Line Feed above me"
    End Sub
    

    alt text