我希望有人能帮忙..。
我有一个powerpoint演示文稿,它链接了excel文件中的表格和图表。幻灯片的更新设置为手册。
我在Powerpoint中创建了一个VBA代码,它打开了excel文件。我试图通过VBA更新powerpoint中的链接,而不是手动选择每个链接元素和更新值。虽然我的VBA代码的第一部分用于打开excel文件,但是链接没有被更新,我认为这是因为没有回到powerpoint来更新链接,所以我尝试在我的VBA代码行中包括这些代码行,这些代码行将返回到powerpoint演示文稿,之后我假设更新链接的行将正常工作(很高兴得到更正)。下面是我构建的代码,所以far....my注释是粗体.
有什么建议吗?FYI,我正在使用office 2007。
谢谢
Sub test()
Dim xlApp As Object
Dim xlWorkBook As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlWorkBook = xlApp.Workbooks.Open("File location\filename.xlsm", True, False)
Set xlApp = Nothing
Set xlWorkBook = Nothing上面的部分打开excel文件,其中包含链接的表和图表,
On Error Resume Next
With GetObject(, "PowerPoint.Application")
.ActivePresentation.SlideShowWindow.Activate
End With上面的部分我希望在打开excel文件后返回到powerpoint,但是没有,这就是为什么我认为下面用于更新链接的代码无法运行
ActivePresentation.UpdateLinks
End Sub发布于 2017-09-14 11:17:52
从更容易的事情开始。这将允许您从Excel激活第一个现有的PowerPoint应用程序:
Option Explicit
Public Sub TestMe()
Dim ppt As New PowerPoint.Application
ppt.visible = msoTrue
ppt.Windows(1).Activate
End Sub然后播放它并将其修复到您的代码中。
发布于 2017-09-14 14:02:29
@Vityata
好的,我把它写到了work....original代码中打开excel文件的第一部分,然后切换回powerpoint (我认为只有在只有一个演示文稿打开的情况下,我添加了以下代码.
AppActivate“微软PowerPoint”
因此,我的完整代码如下:
子test() Dim xlApp作为对象Dim xlWorkBook作为对象集xlApp = CreateObject("Excel.Application")
xlApp.Visible =真
设置xlWorkBook = xlApp.Workbooks.Open("file path\file name.xlsm",True,False)
设置xlApp = Nothing Set xlWorkBook = Nothing AppActivate "Microsoft PowerPoint"
结束子对象
现在要将手动链接作为vba代码的一部分进行更新.
发布于 2017-09-14 20:27:49
如果捕获宏所在的文件,请执行以下操作。这只是您的路径和文件名的字符串。
'This is the macro file
MacroFile = ActivePresentation.FullName然后,您可以使用该变量来激活特定的PowerPoint表示。
使用演示文稿(MacroFile).Activate或演示文稿(MacroFile).Updatelinks
在应用程序之间移动时最好不要使用ActivePresentation。
https://stackoverflow.com/questions/46217042
复制相似问题