构建一个宏,用于将表从Powerpoint复制到Excel

时间:2014-06-15 22:24:19

标签: powerpoint export-to-excel powerpoint-vba

我对此非常“陌生”。我目前正在使用包含~120张幻灯片的ppt文件,每张幻灯片包含一个具有相同字段但值不同的表。我想将这些表复制到Excel文件中。没有与表关联的图表。

我不关心字段名称,只关心值,我正在寻找一个自动执行此操作的VBA代码。

是否可能或过于简单。我尝试录制PPT宏来复制表格(alt + t + m + r),但我不知道在那之后该怎么做,或者如何启动Excel文件来粘贴这个宏等。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我对Excel并不是那么好,但也许其他人可以在这里填补空白。这或多或少是您在PowerPoint中每张幻灯片上找到第一张表所需要的,并使用它做一些事情。或许对Excel有好处的人会填补缺失的部分。

Sub CopyTables()

    Dim oSl As Slide
    Dim oTbl As Table
    Dim lCol As Long
    Dim lRow As Long

    For Each oSl In ActivePresentation.Slides
        Set oTbl = GetFirstTable(oSl)
        If oTbl Is Nothing Then
            Exit For
        End If

        With oTbl
            For lCol = 1 To .Columns.Count
                For lRow = 1 To .Rows.Count
                    Debug.Print oTbl.Cell(lRow, lCol).Shape.TextFrame.TextRange.Text
                Next
            Next
        End With
    Next

End Sub

Function GetFirstTable(oSl As Slide) As Table
    Dim oSh As Shape
    For Each oSh In oSl.Shapes
        If oSh.HasTable Then
            Set GetFirstTable = oSh.Table
            Exit Function
        End If
    Next
End Function