2012-08-13 15 views
8

Grafik "jpeg dosyası" olarak bir tabloyu dışa aktaracak bir düğme oluşturmaya çalışıyorum. Bu aldığım kodu ancak bu hatayı gösteren devam ediyor: Bunun ÖzellikleGrafiği resimli olarak gönder - bir butona tıklayarak tıklayın

runtime error 424: object required

:

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

Ve burada kod

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 

herkese teşekkürler bu!

cevap

18

Denediğin şey bu mu?

Ayrıca jpg olarak kaydetmeye çalışıyorsanız, neden bir png filtresi? "MyChart.jpg" yi "myChart.png" olarak değiştirdim. Uygulanabilir olarak değiştirin.

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

Sadece çok hızlısınız! Siddharth'ın cevabına dahil olan OP'ye bir not, kodunuzda mümkün olan en kısa sürede Hata Yapma GoTo 0 eklemektir veya hataları maskeleyebilirsiniz. Bu durumda, her zaman kafa karıştırıcı olan ChartObject'in Grafik Nesnesine ihtiyacınız vardı. –

+0

Son birkaç gündür hareketsizliği telafi etmeye çalışıyorum: D –

+0

Vay mükemmel. Teşekkürler! – pufAmuf

1

Teşekkürler, ben görüntünün tüm grafikleri ayıklamak için bu gerekli ve neredeyse gece yarısı. Yukarıdaki kodda yapılan küçük değişiklikler hile yaptı.

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 
İlgili konular