我是新来的这一点,基本上是我想要做的是:
- 我有文件的2个Excel文件和1个PowerPoint演示文稿 - 所有都在-I链接我的Excel文件来 - 我有Office 2003和2007版本的PowerPoint演示共享网络
问题:
我玩的PowerPoint幻灯片,并将其设置为循环1台计算机上显示其在工作中的大液晶显示屏上,然后我访问一个单独的计算机上的Excel文件,并从那里更新,问题是正在不会幻灯片自动显示我的变化。 我必须手动停止演出,然后单击幻灯片(更新链接),将它显示我刚刚输入的更新。
有没有办法让幻灯片将在展会中展示我的更新数据,我不会有手动停止它,然后单击更新链接。
我在这里找到了一个有点类似的问题,但没有得到回答的地步,这将有助于我提出我的问题。
我已经解决了上述使用此代码的问题
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.View.CurrentShowPosition = 2 Then
ActivePresentation.UpdateLinks
End If
End Sub
假设我在节目2张幻灯片,是通过幻灯片2时,它会触发更新的链接和循环回用更新的OLE链接滑动1。 我花了大量的阅读来获得这部分,但我不能让它跑,当我开始表演。 我必须手动按下Alt + F8,然后单击所以运行代码将循环每张幻灯片2。
编辑:终于得到它,但不运行宏一次工作。 我刚打开PowerPoint和播放节目。 当节目通过幻灯片2或只是一个开始更新进行动态更新。 现在也有一些仍然没有对这个问题的解决方案,希望这可以帮助你。
我利用这里找到在autoevent.zip http://skp.mvps.org/autoevents.htm 。 我安装包含在zip作为附加在AutoEvents.ppa并激活它在PPT2007和PPT2003。 然后创建与该码的正常模块/宏。
Sub Auto_ShowBegin()
ActivePresentation.UpdateLinks
End Sub
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
'
' AUTO UPDATE OF OLE LINKS MACRO
'
If SSW.View.CurrentShowPosition = 2 Then
ActivePresentation.UpdateLinks
End If
End Sub
和你做。 请确保您保存您的PowerPoint中启用宏的格式都为2003年和2007年,这是因为我的MS Office的两个版本。 并勾选ckeck框说对VBA工程对象模型以诚取信访问。 此外循环幻灯片,这样当它通过幻灯片2或演出刚开始的时候,它会更新所有OLE链接。
请评论,如果我错过了一些东西。 希望这可以帮助。
我认为你需要的代码这一点。
添加一个新类模块,演示文稿,并命名为“clsEvents”。 添加以下代码:
Public WithEvents PPTEvent As Application
Sub PPTEvent_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
Dim objSld As Slide, shp As Shape
Set objSld = Wn.Presentation.Slides(Wn.View.CurrentShowPosition)
For Each shp In objSld.Shapes
If shp.Type = msoLinkedOLEObject Then
shp.LinkFormat.Update
End If
Next shp
End Sub
在一个正常的模块认沽:
Dim app As clsEvents
Sub SetUpEvents()
Set app = New clsEvents
Set app.PPTEvent = Application
End Sub
开始幻灯片之前运行setupevents。