使用VBA获取PowerPoint图表到Excel工作表的数据

发布于 2025-02-03 15:07:16 字数 1704 浏览 0 评论 0原文

因此,当您右键单击PowerPoint中的图表时,然后单击编辑数据。一个工作簿将打开。我只希望将这些数据复制到我的Excel文件中。帮助我提取PowerPoint每张幻灯片中的每个图表。请帮助我这是我到目前为止ppt vba中的代码:

sub powerpointtoexcel()

Dim PPTPres As Presentation
Dim PPTSlide As Slide
Dim PPTShape As Shape
Dim PPTTable As Table
Dim PPTChart As Chart
Dim PPTPlaceHolder As PlaceholderFormat

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim xlRange As Excel.Range

Dim PPTChartData As MSForms.DataObject

Set PPTPres = Application.ActivePresentation

On Error Resume Next

Set xlApp = GetObject(, "Excel.Application")
Set xlBook = xlApp.Workbooks("Book2.xlsx")
Set xlSheet = xlBook.Worksheets("Sheet2")

Set PPTChartData = New MSForms.DataObject

For Each PPTSlide In PPTPres.Slides

    For Each PPTShape In PPTSlide.Shapes
    
        If PPTShape.HasChart Then
        
            Set PPTChart = PPTShape.Chart
            
        
            Set xlRange = xlSheet.Range("A10000").End(xlUp)
            
            If xlRange.Value <> "" Then
                
                Set xlRange = xlRange.Offset(1, 0)
                
            End If
            
            With PPTPres.Slides(PPTSlide).Shapes(PPTShape).Chart.ChartData
            .Activate
            .Workbook.Sheets(1).Range("A2:E10").Copy
            
            PPTChartData.GetFromClipboard
            
            End With
            
            SData = PPTChartData.GetText(1)
            xlRange.Value = SData
            xlRange.Offset(0, 1).Value = PPTSlide.Name
            xlRange.Offset(0, 2).Value = PPTChart.ChartData
            
        
        End If
        
    Next
    
Next




End Sub

So when you right click a chart in Powerpoint and click Edit Data. A workbook will open up. I just want those data to be copied to my Excel file. Help me to extract every chart in each slide of powerpoint. Please help me Here's my code in PPT VBA so far:

Sub PowerpointToExcel()

Dim PPTPres As Presentation
Dim PPTSlide As Slide
Dim PPTShape As Shape
Dim PPTTable As Table
Dim PPTChart As Chart
Dim PPTPlaceHolder As PlaceholderFormat

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim xlRange As Excel.Range

Dim PPTChartData As MSForms.DataObject

Set PPTPres = Application.ActivePresentation

On Error Resume Next

Set xlApp = GetObject(, "Excel.Application")
Set xlBook = xlApp.Workbooks("Book2.xlsx")
Set xlSheet = xlBook.Worksheets("Sheet2")

Set PPTChartData = New MSForms.DataObject

For Each PPTSlide In PPTPres.Slides

    For Each PPTShape In PPTSlide.Shapes
    
        If PPTShape.HasChart Then
        
            Set PPTChart = PPTShape.Chart
            
        
            Set xlRange = xlSheet.Range("A10000").End(xlUp)
            
            If xlRange.Value <> "" Then
                
                Set xlRange = xlRange.Offset(1, 0)
                
            End If
            
            With PPTPres.Slides(PPTSlide).Shapes(PPTShape).Chart.ChartData
            .Activate
            .Workbook.Sheets(1).Range("A2:E10").Copy
            
            PPTChartData.GetFromClipboard
            
            End With
            
            SData = PPTChartData.GetText(1)
            xlRange.Value = SData
            xlRange.Offset(0, 1).Value = PPTSlide.Name
            xlRange.Offset(0, 2).Value = PPTChart.ChartData
            
        
        End If
        
    Next
    
Next




End Sub

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文