2013-10-21 56 views
1

我正在使用vba更新PowerPoint演示文稿。 ppt中有30個圖表,我將把一些excel表格中的數據應用到powerpoint圖表的後端excel表格中。但每次我這樣做時,我都可以看到新的Excel表單在任務欄中打開。即使他們沒有在整個屏幕上顯示如何在新實例中打開PowerPoint後端工作表

Set CExcel = New Excel.Application 
CExcel.Visible = False 
Set CWB2 = CExcel.Workbooks.Open(PPPres.Slides(lngSldNo).Shape(strChartName).Chart.ChartData.Workbook) 

這是我使用的代碼,但它給我的錯誤,你不能打開一個文件,這樣 你能告訴我怎麼後端表的簡報圖表可以在一個新實例,而不顯示文件和其標籤也

感謝事先被打開

+0

代碼的第一行會打開Excel應用程序的每一次新的實例。您只需添加'CExcel.Visible = true'即可在屏幕上查看它們。但是,我知道這不是問題。 **從哪個應用程序運行代碼 - Excel或PP?**代碼的其他部分是什麼?從一開始就有更多的代碼行,並且一些代碼行將在您現在提供的代碼旁邊出現。 –

+0

我正在使用Excel-VBA。我只是想通過一個新的實例打開一個PowerPoint後端excel表格,這樣我就可以隱藏它。 – user1955783

+0

你的代碼的其他部分呢? –

回答

0

的第一參數來Workbooks.Open方法是包含文件路徑的字符串,例如

Sub Test() 
Dim EAPP As Excel.Application, EWB As Excel.Workbook 

    Set EAPP = New Excel.Application 
    Set EWB = EAPP.Workbooks.Open("C:\Users\Myself\Desktop\MyFile.xlsx") 

    Set EWB = Nothing 
    Set EAPP = Nothing 
End Sub 

不確定這是由您的論點交付。 Application.Visible屬性默認爲False,所以不需要明確設置它。我猜你已經創建了一個Excel對象庫的引用,以便使用Powerpoint中的Excel對象進行早期綁定。

+0

我用來打開一些excel表格的方法相同,但對於powerpoint圖表後端表單沒有位置,所以我不能給出位置 – user1955783

0

邏輯:

  1. 獲取其具有Chart對象形狀
  2. 獲取您的Chart對象,然後獲取Chartdata
  3. 啓動圖表,並設置工作簿和您的Excel應用對象

假設:

出於演示的目的,我假定以下

  1. 在演示Slide1具有一個形狀,其是一個圖表
  2. 我已經加入這兩種方案。即Automating Excel from PowerPointAutomating PowerPoint from Excel

這是你正在嘗試的嗎?從PowerPoint

Option Explicit 

Sub Sample() 
    '~~> Excel Objects 
    Dim oXlApp As Object, oXlWb As Object, oXlSheet As Object 
    '~~~> Powerpoint objects 
    Dim oPPChart As Chart 
    Dim oPPChartData As ChartData 

    '~~> Working with shape1 
    With ActivePresentation.Slides(1).Shapes(1) 
     If .HasChart Then 
      Set oPPChart = .Chart 
      Set oPPChartData = oPPChart.ChartData 

      oPPChartData.Activate 

      '~~> Set your Excel objects here 
      Set oXlWb = oPPChartData.Workbook 
      Set oXlApp = oXlWb.Parent 

      oXlApp.Visible = False 

      Debug.Print oXlApp.Name 
      Debug.Print oXlWb.Name 


      ' 
      '~~> Rest of your code 
      '  
     End If 
    End With 

    '~~> Close And Cleanup 
    oXlWb.Close False 
    oXlApp.Quit 

    Set oXlSheet = Nothing 
    Set oXlWb = Nothing 
    Set oXlApp = Nothing 
End Sub 

CODE自動化Excel:

代碼的PowerPoint自動化從Excel

Option Explicit 

Sub Sample() 
    '~~> Excel Objects 
    Dim oXlApp As Application, oXlWb As Workbook, oXlSheet As Worksheet 

    '~~~> Powerpoint objects 
    Dim oPPApp As Object, oPPprsn As Object, oPPSlide As Object 
    Dim oPPChart As Object, oPPChartData As Object 

    Application.ScreenUpdating = False 

    '~~> Establish a Popwerpoint application object 
    On Error Resume Next 
    Set oPPApp = GetObject(, "PowerPoint.Application") 

    '~~> If not found then create new instance 
    If Err.Number <> 0 Then 
     Set oPPApp = CreateObject("PowerPoint.Application") 
    End If 
    Err.Clear 
    On Error GoTo 0 

    '~~> open relevant powerpoint file 
    Set oPPprsn = oPPApp.Presentations.Open("C:\Presentation1.pptx") 
    Set oPPSlide = oPPprsn.Slides(1) 

    '~~> Working with shape1 
    With oPPSlide.Shapes(1) 
     If .HasChart Then 
      Set oPPChart = .Chart 
      Set oPPChartData = oPPChart.ChartData 

      oPPChartData.Activate 

      '~~> Set your Excel objects here 
      Set oXlWb = oPPChartData.Workbook 
      Set oXlApp = oXlWb.Parent 

      '~~> This is required if powerpoint chartdata 
      '~~> opens in the same instance of this excel 
      oXlWb.Windows(1).Visible = False 
      'oXlApp.Visible = False 

      Debug.Print oXlApp.Name 
      Debug.Print oXlWb.Name 

      ' 
      '~~> Rest of your code 
      ' 
     End If 
    End With 

    oXlWb.Windows(1).Visible = True 

    '~~> Close And Cleanup 
    oXlWb.Close False 

    oPPprsn.Close 
    oPPApp.Quit 

    Application.ScreenUpdating = True 

    Set oPPChartData = Nothing 
    Set oPPChart = Nothing 
    Set oPPChartData = Nothing 
    Set oPPSlide = Nothing 
    Set oPPprsn = Nothing 
    Set oPPApp = Nothing 
End Sub 
+0

我嘗試過這種方法,但工作簿仍然在後臺打開。我可以看到新的excel文件在任務欄中打開(excel選項卡一旦開始打開圖表後端excel文件就會開始閃爍) – user1955783

+0

請刷新頁面並嘗試第二種方法「自動從Excel中提取PowerPoint」 。 –

+0

第二個代碼正常工作正常訪問數據,但我仍然得到一個新的窗口在後臺打開 – user1955783

相關問題