Powerpoint VBA从Excel切换回powerpoint

我希望有人能帮帮忙….

我有一个幻灯片演示文稿,它链接了Excel文件中的表格和graphics。 幻灯片的更新设置为手动。

我在Powerpoint中创build了一个打开excel文件的VBA代码。 我试图通过VBA更新PowerPoint中的链接,而不是手动select每个链接元素和更新值。 而我的VBA代码的第一部分在打开excel文件的工作,链接没有更新,我认为是不是在回到更新链接的Powerpoint,所以我想包括在我的VBA代码行将回到PowerPoint演示文稿,之后,我假设该行更新链接将工作(高兴地被纠正)。 下面是我迄今为止build立的代码….我的评论是粗体的…

有什么build议么? 仅供参考,我正在使用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 

从更简单的事情开始。 这将允许您从Excel激活第一个现有的PowerPoint应用程序:

 Option Explicit Public Sub TestMe() Dim ppt As New PowerPoint.Application ppt.visible = msoTrue ppt.Windows(1).Activate End Sub 

然后玩一下,并将其修复到您的代码中。

@Vityata

好吧,我得到它的工作….原来的代码做了打开Excel文件的第一部分,并切换回Powerpoint(我认为这将只工作,如果只有一个演示文稿打开,我加了下面的代码。 ..

AppActivate“Microsoft PowerPoint”

所以我的完整代码如下所示:

Sub test()Dim xlApp As Object Dim xlWorkBook As Object Set xlApp = CreateObject(“Excel.Application”)

xlApp.Visible = True

设置xlWorkBook = xlApp.Workbooks.Open(“文件path\文件名..xlsm”,True,False)

设置xlApp =没有设置xlWorkBook = Nothing AppActivate“Microsoft PowerPoint”

结束小组

现在得到手动链接更新作为VBA代码的一部分…

如果您捕获您的macros所在的文件。这只是您的path和文件名的string

 'This is the macro file MacroFile = ActivePresentation.FullName 

然后,您可以使用该variables来激活该特定的PowerPoint演示文稿。

使用演示文稿(MacroFile)。激活或演示文稿(MacroFile).Updatelinks

在应用程序之间移动时最好不要使用ActivePresentation。