我知道这个问题已经被多次询问和回答,但不幸的是找不到工作解决方案。使用VBA更新PowerPoint图表
因此,我在PowerPoint中有一个非常简单的演示文稿(只有一张幻灯片,其中一张图表是从Excel表创建的),并且需要通过VBA更新最近的数据,无论是从Excel还是PowerPoint脚本运行。
首先,我想最明显的脚本从PowerPoint:
Sub update1()
ActivePresentation.UpdateLinks
End Sub
它似乎运行,但不需要做任何改变。然后我开始在网上搜索解决方案,例如,找到以下topic on StackOverflow。
对于Optimistic Busy的回答,它运行时没有错误,并在MessageBox中给我一个输出,但它在PowerPoint图表中没有任何变化。
的答案被rinusp它给了我一个错误
运行时错误“91”:对象变量或带块变量未设置
上线
For each sld in myPresentation.Slides
我在PowerPoint中尝试了所有这些宏。
我也尝试过从StackOverflow的其他问题的答案,但不幸的是没有为我工作。如果有人帮助我找到任何工作解决方案,我会很高兴 - 如果VBA脚本运行,从Excel或PowerPoint中无关紧要。
在此先感谢。
UPDATE:我正在更新我的问题,我已经尝试运行的代码的完整示例。这个例子是由上面提到的StackOverflow主题的用户Optimistic Busy和rinusp提供的。
从PowerPoint运行时,该代码给我一个错误“运行时错误‘91’:对象变量或带块变量未设置”
Sub update2()
Dim myPresentation As PowerPoint.Presentation
Dim sld As PowerPoint.Slide
Dim shp As PowerPoint.Shape
Dim myChart As PowerPoint.Chart
For Each sld In myPresentation.Slides
For Each shp In sld.Shapes
If shp.HasChart Then
Set myChart = shp.Chart
myChart.ChartData.Activate
myChart.Refresh
End If
Next
Next
End Sub
,并运行此代码没有错误,并给出了一个输出消息框但未更新图表
Sub update3()
Dim sld As Slide, shp As Shape
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
On Error Resume Next
shp.LinkFormat.Update
Next
Next
MsgBox ("Update chart")
End Sub
你好,你可以发布你正在努力工作的完整代码。该错误似乎与没有引用您正在与之交互的对象有关。 –
@RyanWildry,我用完整的代码示例更新了我的问题。 – Hasek