Powerpoint 在 VBA 自动化期间崩溃

Powerpoint crashes during VBA automation

我有一个 Excel 宏,它采用带有图表对象的现有 Powerpoint 模板,并使用 Excel 工作表中的数据编辑每个图表的数据。代码遍历工作表中的 'n' 行数,为每个 Excel 行创建一系列 4 张幻灯片。

奇怪的是,对于某些行,一组中的一张或多张幻灯片会产生 "Excel has stopped working" 错误,但数据似乎已正确安装。但是,问题点是一个间歇性的、有点随机的 "Powerpoint has stopped working" 错误。 powerpoint 错误使 powerpoint 完全崩溃。当我到达大约 50 个幻灯片标记时,这两种情况似乎都会发生。

这里以集合中第4个的代码为例。其他的几乎相同:

oPPT.ActiveWindow.View.GotoSlide Index:=5 + (4 * dIndex)

' SET OBJECT & CHART REFERENCES
Set shapeObject = oPPT.ActivePresentation.Slides(5 + (4 * dIndex)).Shapes("Chart 4")
Set myChart = shapeObject.Chart
Set gChartData = myChart.ChartData
Set gWorkbook = gChartData.Workbook
Set gWorksheet = gWorkbook.Worksheets(1)

' SET VALUES 
gWorksheet.Range("B2").Value = myWs.Range("Y" & dRow).Value
gWorksheet.Range("B3").Value = myWs.Range("AA" & dRow).Value
gWorksheet.Range("B4").Value = myWs.Range("Z" & dRow).Value
gWorksheet.Range("B5").Value = myWs.Range("X" & dRow).Value

Set shapeObject = Nothing
Set myChart = Nothing
Set gChartData = Nothing
Set gWorksheet = Nothing
gWorkbook.Close
Set gWorkbook = Nothing

错误是完全随机的,并且每次都在不同的迭代中发生。我发现我第一次 运行 从来没有产生 PPT 停止工作错误。后续的可能。

有什么想法吗?我对这里发生的事情感到困惑。

请注意,在迭代 Excel 工作簿之前,我根据需要将模板集复制到多个集中。例如,如果 Excel 工作表有 10 行,我将 4 张模板幻灯片复制 10 次,然后再对底层数据进行任何编辑。

是否存在计时问题?

似乎缺少的一件事是访问嵌入式工作表之前的激活调用:

gChartData.Activate

这或许可以解释崩溃问题。 比照。 https://msdn.microsoft.com/de-de/vba/powerpoint-vba/articles/chartdata-activate-method-powerpoint

干杯 詹斯