我有一个需要不断循环以不断显示信息的 Powerpoint 演示文稿。我希望一张幻灯片中链接的 Excel 工作表对象在每次显示该幻灯片时刷新其数据,在循环演示文稿中显示更新的数据。
我该怎么做呢?
我有一个需要不断循环以不断显示信息的 Powerpoint 演示文稿。我希望一张幻灯片中链接的 Excel 工作表对象在每次显示该幻灯片时刷新其数据,在循环演示文稿中显示更新的数据。
我该怎么做呢?
进行更新的代码只有一行:
ActivePresentation.Slides(2).Shapes(1).LinkFormat.Update
您可以通过索引号或名称Slides
来引用两者。Shapes
上面的示例更新了第Shape
2 个对象上第 1 个对象的链接Slide
。您需要按照以下步骤使该代码在适当的时间触发。
从 Microsoft Office 文档:
如何:将事件与应用程序对象一起使用
为Application对象的事件创建事件处理器,需要完成以下三个步骤:
- 在类模块中声明一个对象变量以响应事件。
- 编写具体的事件程序。
- 从另一个模块初始化声明的对象。
声明对象变量
在为 Application 对象的事件编写过程之前,您必须创建一个新的类模块并声明一个带有事件的 Application 类型的对象。例如,假设创建了一个新的类模块并将其称为 EventClassModule。新的类模块包含以下代码。
VBA
Public WithEvents App As Application
编写事件过程
用事件声明新对象后,它出现在类模块的对象列表中,您可以为新对象编写事件过程。(当您在对象列表中选择新对象时,该对象的有效事件将列在过程列表中。)从过程列表中选择一个事件;一个空过程被添加到类模块中。
VBA
Private Sub App_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
ActivePresentation.Slides(2).Shapes(1).LinkFormat.Update
End Sub
初始化声明的对象
在程序运行之前,您必须将类模块(本例中为 App)中声明的对象与 Application 对象连接起来。您可以使用任何模块中的以下代码执行此操作。
VBA
Dim X As New EventClassModule
Sub InitializeApp()
Set X.App = Application
End Sub
运行 InitializeApp 过程。程序运行后,类模块中的App对象指向Microsoft Office PowerPoint Application对象,当事件发生时,类模块中的事件程序将运行。