2012-02-09 62 views
7

我有30個圖表,這些圖表是由excel創建的,並粘貼到幻燈片上。每個月,我都必須通過手動點擊圖表和編輯來更新這30個嵌入式圖表。如何在Powerpoint中更新excel嵌入圖表?

我知道有一個選項可以使用特殊粘貼,以便可以通過單擊更新鏈接自動更新圖表中的數據。但是,我的圖表需要由一些用戶進行編輯。粘貼特殊選項不允許用戶編輯圖表。因此,我無法使用此粘貼特殊選項。

我認爲解決方案在於在PowerPoint中編寫vba。這裏的任何專家都可以寫這個vba代碼,讓所有的圖表在powerpoint中更新嗎?我目前正在使用powerpoint 2007.非常感謝您的幫助。

回答

14

如果需要那麼顯然編輯圖表,你要麼需要編輯基礎Excel文件,或者能夠在PowerPoint

編輯

當您使用PowerPoint2007提供全面支持Excel(與PowerPoint 2003中,其有一個數據表)我想

第1點部分

  1. 鏈接您的Excel文件中的數據到每個圖表下方的Excel中的數據
  2. 提供,以直接使用該數據的能力,或過程與用戶數據它

Sample

這給你一個靈活的解決方案,不同之處在於每個Excel圖表底層不能自動經由一個PowerPoint更新菜單更新鏈接命令。

第2部分

可以使用下面的代碼來測試在每個載玻片上的每個形狀的每個是否具有圖表。如果是這樣的代碼會更新在圖表下方的Excel文件中的第一個Excel鏈接(這部分可以調整,以處理多個鏈接)

Sub ChangeChartData() 

    Dim pptChart As Chart 
    Dim pptChartData As ChartData 
    Dim pptWorkbook As Object 
    Dim sld As Slide 
    Dim shp As Shape 

    For Each sld In ActivePresentation.Slides 
     For Each shp In sld.Shapes 
      If shp.HasChart Then 
       Set pptChart = shp.Chart 
       Set pptChartData = pptChart.ChartData 
       pptChartData.Activate 
       Set pptWorkbook = pptChartData.Workbook 
       On Error Resume Next 
       'update first link 
       pptWorkbook.UpdateLink pptWorkbook.LinkSources(1) 
       On Error GoTo 0 
       pptWorkbook.Close True 
      End If 
     Next 
    Next 

    Set pptWorkbook = Nothing 
    Set pptChartData = Nothing 
    Set pptChart = Nothing 

End Sub 
+0

感謝您的及時回覆。我有複製和粘貼這個VBA在PowerPoint中,這個VBA能夠運行。但是,我得到一個彈出菜單,要求更新我的文檔文件夾中的文件。我的源碼即excel文件位於我的桌面文件夾中。我如何刪除彈出菜單。非常感謝這個vba。 – user1199080 2012-02-10 06:09:36

+1

謝謝。我對vba代碼做了輕微的修改,現在完全更新了它的更新。這段代碼是一個救命稻草。再次感謝。 – user1199080 2012-02-15 05:32:02

+1

這是一個很好的答案。這也可以打破聯繫? – mooseman 2012-08-24 16:06:49

2

這是很容易實現的,無需任何VBA代碼。

  1. 單擊「Office按鈕」,選擇「編輯鏈接到文件」(這是下面「運行兼容性檢查」,你將不得不向下滾動看到最後一個選項):

    Office Menu, "Prepare" submenu

  2. 選擇所有嵌入圖表(這裏稱爲 「鏈接」),點擊 「立即更新」:

    "Links" window

您可以使用相同的窗口來中斷鏈接,也可以更改任何給定鏈接的源文件。

+1

如果PPT直接鏈接到Excel,則可以使用此功能,但如果鏈接的Excel文件位於圖表下方,則不能使用此功能 – brettdj 2013-02-19 07:40:09

相關問題