Выбор и удаление текстовых полей с определенной текстовой строкой в ​​PowerPoint - PullRequest
1 голос
/ 11 октября 2019

Я пытаюсь выделить текстовое поле в PowerPoint с определенным словом и удалить его. Текстовое поле появляется на каждом слайде в презентации, и я хотел бы удалить каждое текстовое поле на каждом слайде в презентации. В текстовых полях со словом, которое я пытаюсь удалить, есть слово «Страница».

Я пытался использовать какой-то другой код, который я видел в Интернете, но ничего не происходит с презентацией, когда я запускаю код. Хотите знать, что мне не хватает для удаления текстового поля?

У меня есть код, который я уже пробовал:

Sub deletor()
    On Error Resume Next
    Dim osld As Slide
    Dim L As Long
    For Each osld In ActivePresentation.Slides
        For L = osld.Shapes.Count To 1 Step -1
            If osld.Shapes(L).HasTextFrame Then
                If osld.Shapes(L).TextFrame.HasText Then
                    ' obviously use their address
                    If LCase(osld.Shapes(L).TextFrame.TextRange) Like LCase("Page") Then
                        osld.Shapes(L).Delete
                    End If
                End If
            End If
        Next
    Next
End Sub

Нет сообщений об ошибках, просто никаких действий в Excel (текстовые поля со словом страницы все еще там). Это заставляет меня предположить, что макрос работает, но не выполняет то, что я пытаюсь сделать для него.

1 Ответ

1 голос
/ 11 октября 2019

Проблема в строке

If LCase(osld.Shapes(L).TextFrame.TextRange) Like LCase("Page") Then

Оператор Like использует шаблон с подстановочными знаками. Я бы предположил, что вам нужен шаблон

... Like "page*"

или

... Like "*page*"

Нет необходимости LCase строка, которую вы пишете в виде литерального значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...