我已经阅读了有关此问题的几篇文章,试图解决我的问题没有成功。
我用excel工作表中的数据更新Powerpoint图表(不是链接的数据,数据在Powerpoint图表的“内部”)。有超过100个图表。 它可以在多台计算机上正常运行(w10 / 7,Office 365 = 2016),但是在某些计算机上,偶尔会因激活“ ChartData”对象而出现错误“对象'ChartData'的方法'Activate'失败”而停止。如果我选择“恢复”,它将继续正常运行,就像没有错误一样。
从等价错误的帖子中可以看出,我先激活powerpoint,然后选择幻灯片,图表,等待1秒钟后激活chartdata,依此类推。看来没有什么是正确的。
NB:发生错误时,我尝试5次以每次尝试1秒的速度重新打开图表数据,但最终都出错了。
这是代码(开放)。
Private Sub OpenChartDataWorkBook(ByRef pptSld As PowerPoint.Slide, ByRef pptGrph As PowerPoint.Chart, ByRef gData As PowerPoint.ChartData, _
ByRef gWBK As Excel.Workbook, ByRef gWSH As Excel.Worksheet, Optional nbErr As Integer = 0)
' execution des instruction d acces au workbook d un graphique powerpoint
Redo:
If nbErr < 5 Then
On Error GoTo ErrDo
End If
pptSld.Application.Visible = msoTrue ' rend ppt visible
pptSld.Application.Activate ' active ppt
pptSld.Select ' selectionne la slide
If pptGrph.Parent.Visible = True Then
pptGrph.Parent.Select ' selectionne la shape
pptGrph.Select ' selectionne le graphique
End If
Set gData = pptGrph.ChartData
Call WasteTime(1000) ' attente d une seconde
gData.Activate
Set gWBK = gData.Workbook
gWBK.Application.WindowState = -4140 ' rendre invisible
Set gWSH = gWBK.Sheets(1)
Exit Sub
ErrDo:
On Error GoTo 0
nbErr = nbErr + 1
Call WasteTime(1000) ' attente d une seconde
Call OpenChartDataWorkBook(pptSld, pptGrph, gData, gWBK, gWSH, nbErr)
End Sub
变量在声明之前,之后不设置。 没有使用此代码生成的Excel实例。 可以使用相同类型的代码来关闭图表。
错误出现在“ gData.Activate”行上。它大部分时间都有效,但通常会停止:“ Erreur d'exécution'-1328086629(b0d7019b)':Laméthode'Activate'de l'objet“ ChartData'aéchoué”。
感谢您的帮助。 皮埃尔。