2016-03-15 3 views
0

Я ничего не знаю о VBA, я просто пытаюсь, чтобы 4 диаграммы (которые уже разделены на своих вкладках) были легко экспортированы как PNG-файлы в заданное место каждый раз, когда я сохраняю документ excel ,Excel VBA Export chart

Пройдя через некоторую базу данных stackoverflow, мне удалось сделать что-то похожее с рабочим листом, который я хотел экспортировать как CSV, но я не могу сделать то же самое для своих диаграмм.

Сейчас вот что мой VBA выглядит для ThisWorkbook:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 

Application.DisplayAlerts = False 
Application.ScreenUpdating = False 
ThisWorkbook.Worksheets("CSV Monthly Update").Copy 
ActiveWorkbook.SaveAs Filename:="CSV Monthly Update.csv", FileFormat:=xlCSVWindows 
ActiveWorkbook.Close 

Application.DisplayAlerts = True 
Application.ScreenUpdating = True 

End Sub 

«Это выше часть работает хорошо»

«Тот ниже, не, я пытаюсь получить диаграмму из Рабочий лист «Growth_of_10k» на экспорт, но это дает мне ошибку времени выполнения 9 о RunScript быть из страницы»

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

    Set objChrt = Sheets("Growth_of_10k").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 

Любая идея, как мне нужно, чтобы изменить код так, что диаграмма Expor ted автоматически в том же месте, что и файл (или другое заданное местоположение, это не имеет значения) одновременно с сохранением документа excel?

Прошу прощения, если это вопрос новичков, это действительно мое первое начинание с VBA, и поиск в Google может только довести вас до того момента, когда вы не поймете, что делаете.

Спасибо за тонну.

+0

В какой строке вы видите эту ошибку? –

+1

Ваш код работает для меня - единственное, что я могу предложить, может быть, у вас другая рабочая книга, когда вы ее запускаете (так что он будет искать лист «Growth_of_10k» в этой книге и не найдет его). Исправить: 'Установить objChrt = ThisWorkbook .Sheets ("Growth_of_10k"). ChartObjects (3) ' –

+0

Это говорит мне Ошибка времени выполнения '1004' Определенная пользователем или объектная ошибка. Я взял Set objChrt = Sheets («Growth_of_10k»). ChartObjects (3) от кого-то другого. Поэтому я не знаю, что такое имя диаграммы или номер диаграммы на странице, которую я сделал. У меня есть страница под названием «Growth_of_10k», в которой есть только диаграмма и т. Д. Но я не знаю, в каком количестве диаграмм внутри рабочего листа, и не знаю, как обращаться к тем графикам, которые я хочу экспортировать. Ссылка на Dropbox: https: //www.dropbox.com/s/ir3f7223nb9o2db/Avanguard%20Test%20Hypothetical%20Fund%20Cummulative%20Returns.xlsm? Dl = 0 – gcefaloni

ответ

0

Лист диаграммы отличается от графического объекта, встроенного в рабочий лист.

Thisworkbook.Sheets("Chart1").Export _ 
     Filename:=ThisWorkbook.Path & "\" & myFileName, Filtername:="PNG"