2017-09-14 119 views
1

我希望有人可以幫到....Powerpoint VBA從Excel切換回powerpoint

我有一個powerpoint演示文稿,它鏈接了excel文件中的表格和圖形。幻燈片的更新設置爲手動。

我在Powerpoint中創建了一個打開excel文件的VBA代碼。我試圖通過VBA更新PowerPoint中的鏈接,而不是手動選擇每個鏈接元素並更新值。雖然我的VBA代碼的第一部分在打開excel文件時起作用,但鏈接並沒有被更新,我認爲這不是更新鏈接的重點,所以我試圖在我的VBA代碼中加入線將回到PowerPoint演示文稿,之後我假設線更新鏈接將工作(高興地被糾正)。下面是我迄今爲止建立的代碼....我的評論以粗體顯示...

有什麼建議嗎? 僅供參考,我使用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 

部分打開包含

On Error Resume Next 
    With GetObject(, "PowerPoint.Application") 
    .ActivePresentation.SlideShowWindow.Activate 
    End With 

上文第一節希望鏈接的表格和圖表Excel文件會打開excel文件後回到powerpoint,但它不是這是爲什麼我認爲下面的代碼來更新鏈接不起作用

ActivePresentation.UpdateLinks 


End Sub 

回答

1

從更容易的事情開始。這將允許您從Excel啓動的第一個存在的PowerPoint應用程序:

Option Explicit 

Public Sub TestMe() 

    Dim ppt As New PowerPoint.Application 
    ppt.visible = msoTrue 
    ppt.Windows(1).Activate 

End Sub 

然後打了一下它,並將其固定到你的代碼。

+0

感謝您的回覆。如果我沒有弄錯,你上面的代碼會從excel中調用powerpoint,所以這段代碼需要在excel中。然而,我所提供的代碼是以powerpoint打開excel文件的,但是之後我需要返回代碼運行的簡報。希望更清楚。 – Morph314

+0

@ Morph314 - 歡迎。你設法做到了嗎? – Vityata

+0

抱歉,不,我的回覆是在我完成之前發佈的。 – Morph314

0

@Vityata

好吧,我得到它的工作....原來的編碼沒有打開Excel文件的第一部分,並切換回PowerPoint中(我想這如果只會工作只有1個展示開放添加以下代碼...

則AppActivate 「Microsoft PowerPoint中」

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

次試驗(+) 昏暗xlApp作爲對象 昏暗XL工作簿對象 設置xlApp =的CreateObject( 「Excel.Application」)

xlApp.Visible =真

設置xlWorkBook = xlApp.Workbooks.Open( 「文件路徑\文件name.xlsm」,真,假)

設置xlApp =無 設置xlWorkBook =無 使用AppActivate 「Microsoft PowerPoint中」

末次

現在可以獲取手動鏈接,作爲vba代碼的一部分進行更新...

0

如果您捕捉到你的宏在該文件。這僅僅是你的路徑的字符串和文件名

'This is the macro file 
MacroFile = ActivePresentation.FullName 

然後你就可以使用該變量來激活只是具體的PowerPoint演示文稿。

使用演示(MACROFILE).Activate 或演示文稿(MACROFILE).Updatelinks

最好不要在應用程序之間移動時使用ActivePresentation。

+0

謝謝,還有一個很好的留言......但是,包含宏的Powerpoint文件每個月都會有不同的名稱,所以我將不得不每個月更改一次VBA。出於好奇,你會在「Dim xlWorkBook As Object」位後輸入「MacroFile = ActivePresentation.FullName」部分? – Morph314

+0

無論文件名是什麼,都會捕獲當前活動演示文稿的文件名。因此,當您運行宏時,包含該宏的文件應該是活動的演示文稿。在宏的開頭添加代碼行。 – mooseman