【问题标题】:Powerpoint crashes during VBA automationVBA 自动化期间 Powerpoint 崩溃
【发布时间】:2018-11-12 21:16:28
【问题描述】:

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

奇怪的是,对于某些行,集合中的一张或多张幻灯片会产生“Excel 已停止工作”错误,但数据似乎安装正确。但是,问题点是间歇性且有些随机的“Powerpoint 已停止工作”错误。 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 次,然后再对底层数据进行任何编辑。

可能存在时间问题吗?

【问题讨论】:

  • 只要使用 www.pptxbuilder.com 就可以了。

标签: excel vba powerpoint


【解决方案1】:

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

gChartData.Activate

这可能解释了崩溃问题。 参看。 https://msdn.microsoft.com/de-de/vba/powerpoint-vba/articles/chartdata-activate-method-powerpoint

干杯 延斯

【讨论】:

    猜你喜欢
    • 2017-09-03
    • 2015-03-27
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2017-04-06
    相关资源
    最近更新 更多