首页 > 解决方案 > 试图从活动的 ppt 幻灯片中删除表格

问题描述

我正在尝试从 ppt 演示文稿中的活动幻灯片中删除表格,但只有指定幻灯片的编号才能使其正常工作。我希望这适用于任何活动的幻灯片,而不是特定的幻灯片。下面的代码设置为从幻灯片 3 中删除表格。

Sub CopytoPPT()

    Dim rng As Excel.Range
    Dim sl As PowerPoint.Slide, sl_cnt As Long, pr As Object, pr_name As String, ppt As Object
        Dim i As Long, j As Long
    Set ppt = GetObject(, "PowerPoint.Application")
        Set pr = ppt.Presentations(1)

    Set sl = pr.Slides(3)
    For i = sl.Shapes.Count To 1 Step -1
    ' ADD THIS TEST
    If IsTable(sl.Shapes(i)) Then
      sl.Shapes(i).Delete
    End If
    Next i
    End Sub
    
    Function IsTable(oSh As Variant) As Boolean
        
        If oSh.Type = msoPlaceholder Then
            If oSh.PlaceholderFormat.ContainedType = msoTable Then
                IsTable = True
            End If
        Else
            If oSh.HasTable Then
                IsTable = True
            End If
            End If
    End Function

标签: vbapowerpoint

解决方案


改变:

Set sl = pr.Slides(3)

至:

Set sl = ppt.ActiveWindow.View.Slide

推荐阅读