0

我正在尝试将源数据编辑为 PowerPoint 中预先格式化的瀑布图。但是,尝试访问 .ChartData.Workbook 属性时,代码会崩溃。

代码在第一行崩溃:

Set wbChart = cfSlide.Shapes("CFChart").chart.ChartData.Workbook Set wsChart = wbChart.Worksheets(1)

该代码在旧图表上完美运行。

提前致谢。

4

2 回答 2

0

Activate从2007年起,我相信工作簿是很有必要的。这是一个非常糟糕的设计/实现,但根据我的经验,这是必要的。

cfSlide.Shapes("CFChart").chart.ChartData.Workbook.Activate
Set wbChart = cfSlide.Shapes("CFChart").chart.ChartData.Workbook
wbChart.Application.WindowState = -4140    '## Minimizes Excel
Set wsChart = wbChart.Worksheets(1)

这变得很讨厌,因为你必须最小化它和/或.Close最小化 UI 中断。我喜欢立即最小化它,完成后关闭它,你可以这样做wbChart.Close

我想我在其他地方读到过,您可以通过使用With块来避免这种情况,但我无法成功实现,例如:

With cfSlide.Shapes("CFChart").chart.ChartData.Workbook
    Set wsChart = .Worksheets(1)
    ' etc...

End With
于 2016-07-18T15:11:00.857 回答
0

在 2016 年,Powerpoint 可以访问图表(不是 Excel 嵌入对象)背后的数据 XLWorkbook 是保存新数据的 Excel 文件

For Each oSH In ActivePresentation.Slides(2).Shapes

                    With oSH.Chart.ChartData

                            'this updates the values in the datasheet
                            .Workbook.sheets(1).Range("A1:B" & lastrow ).Value = xlWorkBook.sheets(2).Range("A3:B" & lastrow).Value

                    End With
于 2016-12-15T17:49:23.290 回答