Как сделать динамический SetSourceData () для диаграммы Chart? - VB
Формулировка задачи:
Мучаюсь над дипломом, и не могу найти решение в интернете...
Подскажите как грамотно создать динамический диапазон данных для диаграммы?
Хотелось бы чтобы при добавлении на лист новой строки данных, диаграмма перед постраением автоматически подгоняла свой диапазон и после этого строилась.
Есть вот такой статический вариант кода.
Буду очень благодарен если подскажете как с этим разобраться.
Листинг программы
- Private Sub Command4_Click()
- Set apps = CreateObject("Excel.Application")
- apps.Visible = True 'запускаем приложение Excel
- Set AppsWorkBook = apps.Workbooks.Open(App.Path & "\base\base.xls", ignoreReadOnlyrecommended = True) 'открываем базу
- apps.DisplayAlerts = False ' отключаем предупреждения
- AppsWorkBook.Sheets("Диаграмма").Delete 'удаляем лист
- apps.DisplayAlerts = True ' включаем предупреждения
- 'вставляем после всех листов новый лист "Диаграмма"
- AppsWorkBook.Sheets.Add(After:=AppsWorkBook.Sheets(AppsWorkBook.Sheets.Count)).Name = "Диаграмма"
- Set oChart = AppsWorkBook.Sheets("Диаграмма").ChartObjects.Add(10, 10, 300, 250).Chart ' положение и размеры новой диаграммы
- oChart.SetSourceData (AppsWorkBook.Sheets("Лист2").Range("a3:C7", "c3:C7")) ' <- статический вариант диапазона который надо сделать динамичным
- oChart.ChartType = xlColumnClustered
- oChart.HasTitle = True
- With oChart.ChartTitle
- .Characters.Font.Italic = True
- .Characters.Font.Size = 18
- .Text = "Средняя удовлетворенность по группам"
- End With
- Set oChart = Nothing
- apps.ActiveWorkbook.Save
- apps.ActiveWorkbook.Close
- apps.Quit
- Set apps = Nothing
- End Sub
Решение задачи: «Как сделать динамический SetSourceData () для диаграммы Chart?»
textual
Листинг программы
- apps.DisplayAlerts = False ' отключаем предупреждения
- AppsWorkBook.Sheets("Диаграмма").Delete 'удаляем лист
- apps.DisplayAlerts = True ' включаем предупреждения
- lr = Cells(Rows.Count, 1).End(xlUp).Row
- 'вставляем после всех листов новый лист "Диаграмма"
- AppsWorkBook.Sheets.Add(After:=AppsWorkBook.Sheets(AppsWorkBook.Sheets.Count)).Name = "Диаграмма"
- Set oChart = AppsWorkBook.Sheets("Диаграмма").ChartObjects.Add(10, 10, 300, 250).Chart ' положение и размеры новой диаграммы
- oChart.SetSourceData (AppsWorkBook.Sheets("Лист2").Range("a3:C" & lr, "c3:C" & lr)) ' <- динамический вариант диапазона который надо сделать динамичным
- oChart.ChartType = xlColumnClustered
- oChart.HasTitle = True
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д