0

“TextBox 1”形状中的文本是“Work stack.<8Spaces>###Resource: Name1”。我想使用 ppt vba 从上面的文本中删除“###”。执行以下语句后形状中的文本是“工作堆栈。资源:名称 1”。

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

它在句号之后删除空格,但我想保留这些空格,即所需的输出是“工作堆栈。<8Spaces>Resource:Name1”。Replace(FindWhat:="###", ReplaceWhat:=vbNullString) 工作得很好,但我想检查这是否是 delete 方法的默认行为,还是行为不端,或者有没有办法通过 ppt 文本框属性来改变这种行为或其他一些设置。请分享你的想法。

4

1 回答 1

1

这似乎是 的预期行为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
于 2018-11-16T05:46:07.197 回答