2012-08-13 17 views
8

पर क्लिक करके मैं एक बटन बनाने की कोशिश कर रहा हूं जो एक जेपीईजी फ़ाइल के रूप में शीट "ग्राफ" में एक चार्ट निर्यात करेगा। इस कोड को मेरे पास है, लेकिन यह इस त्रुटि दिखा रहती है:छवि के रूप में निर्यात चार्ट -

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 के रूप में सहेजने की कोशिश कर रहे हैं तो एक पीएनजी फ़िल्टर क्यों? मैंने "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

आप बस बहुत तेज़ हैं! ओपी को एक नोट, जिसे सिद्धार्थ के उत्तर में शामिल किया गया है, आपके कोड में जितनी जल्दी हो सके त्रुटि पर GoTo 0 जोड़ना है, या आप त्रुटियों को मुखौटा करेंगे। इस मामले में आपको चार्ट ऑब्जेक्ट के चार्ट ऑब्जेक्ट की आवश्यकता है :) जो हमेशा भ्रमित होता है। –

+0

मैं निष्क्रियता के अंतिम कुछ दिनों के लिए तैयार करने की कोशिश कर रहा हूं: डी –

+0

वाह जो उत्कृष्ट है। धन्यवाद! – pufAmuf

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 
संबंधित मुद्दे