TextRange.Find (). Метод удаления - удаление начальных / конечных пробелов в текстовом поле. - PullRequest
0 голосов
/ 16 ноября 2018

Текст в форме «TextBox 1» - это «Рабочий стек. <8Spaces> ### Resource: Name1».Я хочу удалить "###" из приведенного выше текста с помощью ppt vba.Текст в форме после выполнения инструкции ниже: «Рабочий стек. Ресурс: Имя1».

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

Это удаляет пробелы после точки, но я хочу сохранить эти пробелы, то есть желаемый результат - «Рабочий стек. <8Spaces> Resource: Name1 ".Replace (FindWhat: = "###", ReplaceWhat: = vbNullString) работает очень хорошо, но я хотел проверить, является ли это поведение по умолчанию для метода удаления, или оно неправильно работает, или есть способ изменить это поведение через свойства текстового поля pptили некоторые другие настройки.Пожалуйста, поделитесь своими мыслями.

1 Ответ

0 голосов
/ 16 ноября 2018

Это, кажется, предполагаемое поведение 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
...