VBA代码不适用于删除ppt幻灯片

时间:2019-03-05 10:20:55

标签: vba powerpoint powerpoint-vba

我正在尝试使用特定的关键字删除ppt幻灯片。我的代码如下:

Private Sub CommandButton1_Click()
    Dim strFileName As String
    Dim strFolderName As String
    Dim PP As Presentation
    Dim ppMaster
    Dim sText As Variant
    strFolderName = "D:\Shaon_Paul\pptss"
    strFileName = Dir(strFolderName & "\*.pptx*")
    sText = InputBox("Give me some input")


    Do While Len(strFileName) > 0
        Set PP = Presentations.Open(strFolderName & "\" & strFileName)
        Dim oSld As Slide
        Dim oShp As Shape
        Dim L As Long
        For L = ActivePresentation.Slides.Count To 1 Step -1
        Set oSld = ActivePresentation.Slides(L)
             For Each oShp In oSld.Shapes
             On Error Resume Next
                If oShp.HasTextFrame Then
                    If UBound(Split(oShp.TextFrame.TextRange, sText)) > 0 Then
                    PP.Slides(L).Delete
                    End If
                End If
             Next oShp
        Next L

        Set ppMaster = PP.SlideMaster
        With ppMaster
            If UBound(Split(.HeadersFooters.Footer.Text, sText)) > 0 Or UBound(Split(.HeadersFooters.Header.Text, sText)) > 0 Then
                PP.Slides(L).Delete
            End If
        End With

        PP.Save
        PP.Close
        strFileName = Dir
    Loop
End Sub

现在,这段代码将打开一个输入框,我必须在其中输入关键字,并且它将删除我提到路径名的文件夹中的ppt幻灯片。 不幸的是,在调试代码时

If UBound(Split(oShp.TextFrame.TextRange, sText)) > 0 Then
                    PP.Slides(L).Delete
                    End If

它将跳过而不执行上面的代码,并且无法通过指定特定的关键字名称来删除幻灯片。需要帮助来解决此问题。

0 个答案:

没有答案