2012-08-13 54 views
8

我正在嘗試創建一個按鈕,將圖表「圖形」中的圖表導出爲jpeg文件。這是我的代碼,但它不斷顯示此錯誤:將圖表導出爲圖像 - 點擊一個按鈕

runtime error 424: object required

專門爲此:

Set myChart = Graphs.ChartObjects(3).Name = "Chart4" 

而這裏的代碼

Sub ExportChart() 
    Dim myChart As Chart 
    Dim myFileName As String 
    Set myChart = Graphs.ChartObjects(3).Name = "Chart4" 
    myFileName = "myChart.jpg" 
    On Error Resume Next 
    Kill ThisWorkbook.Path & "\" & myFileName 
    myChart.Export Filename:=ThisWorkbook.Path & "\" & myFileName, Filtername:="PNG" 
    MsgBox "OK" 
    Set myChart = Nothing 
End Sub 

謝謝大家!

回答

18

這是你正在嘗試?

此外,如果你試圖把它保存爲jpg,那麼爲什麼一個PNG過濾器?我已將「myChart.jpg」更改爲「myChart.png」。按適用情況更改。

Sub ExportChart() 
    Dim objChrt As ChartObject 
    Dim myChart As Chart 

    Set objChrt = Sheets("Graphs").ChartObjects(3) 
    Set myChart = objChrt.Chart 

    myFileName = "myChart.png" 

    On Error Resume Next 
    Kill ThisWorkbook.Path & "\" & myFileName 
    On Error GoTo 0 

    myChart.Export Filename:=ThisWorkbook.Path & "\" & myFileName, Filtername:="PNG" 

    MsgBox "OK" 
End Sub 
+0

你太快了! OP的一個注意事項是,在Siddharth的答案中加入的是儘快在您的代碼中添加On Error GoTo 0,否則您將屏蔽錯誤。在這種情況下,您需要ChartObject的圖表對象:),這總是令人困惑。 – 2012-08-13 17:28:09

+0

我正在嘗試彌補無活動的最後幾天:D – 2012-08-13 17:30:36

+0

哇,這是非常好的。謝謝! – pufAmuf 2012-08-13 17:37:34

1

謝謝,我需要這個提取圖像中的所有圖表,它幾乎是午夜。 對上述代碼進行的小修改確實可行。

Sub ExportChart() 
    Dim WS As Excel.Worksheet 
    Dim SaveToDirectory As String 

    Dim objChrt As ChartObject 
    Dim myChart As Chart 

    SaveToDirectory = ActiveWorkbook.Path & "\" 

    For Each WS In ActiveWorkbook.Worksheets 
     WS.Activate 'go there 
     For Each objChrt In WS.ChartObjects 
      objChrt.Activate 
      Set myChart = objChrt.Chart 

      myFileName = SaveToDirectory & WS.Name & "_" & objChrt.Index & ".png" 

      On Error Resume Next 
      Kill SaveToDirectory & WS.Name & Index & ".png" 
      On Error GoTo 0 

      myChart.Export Filename:=myFileName, Filtername:="PNG" 
     Next 
    Next 

    MsgBox "OK" 
End Sub