TextRange.Find()。Delete方法删除文本框中的前导/尾随空格

时间:2018-11-16 03:54:13

标签: vba powerpoint powerpoint-vba textrange

形状为“文本框1”的文本为“工作堆栈。<8Spaces> ###资源:Name1”。 我想使用ppt vba从上述文本中删除“ ###”。执行以下语句后,形状中的文本为“工作堆栈。资源:Name1”。

MyPPT.Slides(1).Shapes("TextBox 1").TextFrame.TextRange.Find("###").Delete

它将在句点之后删除空格,但我想保留这些空格,即所需的输出是“ Work stack。<8Spaces> Resource:Name1”。 Replace(FindWhat:=“ ###”,ReplaceWhat:= vbNullString)确实很好,但是我想检查这是否是delete方法的默认行为,还是行为不当,或者是否有办法通过ppt文本框属性更改此行为或其他一些设置。请分享您的想法。

1 个答案:

答案 0 :(得分:0)

这似乎是Delete的预期行为。手动完成后,行为类似,即,如果在文本框中选择了###,则←Backspace 会清除前导空白。 Cut的行为类似。

也许将Replace与空白字符串一起使用,而不是Delete

Sub Test()
    Dim MyPPT As Presentation
    Set MyPPT = ActivePresentation

    MyPPT.Slides(1).Shapes("TextBox 1").TextFrame.TextRange.Replace FindWhat:="###", ReplaceWhat:=""
End Sub