What is this strange character and how can I get rid of It?

一曲冷凌霜 提交于 2020-01-06 06:08:26

问题


This shows up in both .NET and in VBA. The male sign:

You'll notice on lines 4, 5, 6, 8, 10 and 12 there is an extra character there. This is from a paragraph mark. On line 3 is a tab character, but that just shows up as spaces.

This happens when I try to grab the text of a .TextRange.Text in PowerPoint. Above is the Immediate Window in the VBE, but it also shows up .NET controls when I try to put the text in a control, such as a ListView.

It can be replicated by opening a new PowerPoint presentation and then in the VBE running:

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

How can I get rid of this (i.e. just show nothing in place of the male sign)? Is this some kind of Unicode setting for my controls or RegEx on the string or...?


回答1:


This article will help Exploring the PowerPoint TextRange Object, but note that when it's from a title placeholder it is Chr(11) instead of Chr(13). You can use a TextRange.Replace(ChrW(11), " ") on it to clean it up.




回答2:


Sounds like Powerpoint is not using the same carriage-return line-feed convention that VB is using. You might have to replace the vbCrLf with a different newline convention (make your own byte array pair to insert).




回答3:


instead of vbCrLf Use this 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



来源:https://stackoverflow.com/questions/4091345/what-is-this-strange-character-and-how-can-i-get-rid-of-it

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!