2012-08-13 30 views
8

Tôi đang cố gắng tạo một nút sẽ xuất biểu đồ trong trang "Đồ thị" dưới dạng tệp jpeg. Đây là mã tôi có, tuy nhiên nó vẫn tiếp tục cho thấy lỗi này:Xuất biểu đồ dưới dạng hình ảnh - bằng cách nhấp vào nút

runtime error 424: object required

Cụ thể cho việc này:

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

Và đây là mã

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 

Cảm ơn tất cả mọi người!

Trả lời

18

Đây có phải là những gì bạn đang cố gắng không?

Ngoài ra nếu bạn đang cố gắng lưu nó dưới dạng jpg thì tại sao một bộ lọc png? Tôi đã thay đổi "myChart.jpg" thành "myChart.png". Thay đổi khi áp dụng.

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

Bạn chỉ là quá nhanh! Một lưu ý cho OP, được kết hợp trong câu trả lời của Siddharth là thêm On Error GoTo 0 càng sớm càng tốt vào mã của bạn, hoặc bạn sẽ che dấu các lỗi. Trong trường hợp này, bạn cần Chart Chart của ChartObject :) luôn gây nhầm lẫn. –

+0

Tôi đang cố gắng bù đắp cho những ngày không hoạt động sau cùng: D –

+0

Thật tuyệt vời. Cảm ơn! – pufAmuf

1

Cảm ơn, tôi cần điều này để trích xuất tất cả biểu đồ trong hình ảnh và gần nửa đêm. Các thay đổi nhỏ đối với mã ở trên đã thực hiện thủ thuật.

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 
Các vấn đề liên quan