Как передать данные из массива непосредственно в диаграмму, минуя сводную таблицу? - VBA
Формулировка задачи:
Эти строчки передают данные по Х и У из диапазонов В7:Н7, В8:Н8 и затем на их основе строится диаграмма:
Но для этого нужно, чтобы в ячейках В7:Н7, В8:Н8 присутствовали соответствующие данные. Вопрос: как передать данные в диаграмму напрямую, минуя лист Excel? Например, у меня будут два массива X_Array(N), Y_Array(N), где N - заданное число. Все элементы этих массивов известны (определяются в ходе расчета). Но N может меняться, поэтому не хотелось бы заносить значения элементов массивов на лист Excel.
Вот полный код процедуры, если что:
Решение задачи: «Как передать данные из массива непосредственно в диаграмму, минуя сводную таблицу?»
textual
Листинг программы
Sub Diagr() If ActiveSheet.ChartObjects.Count Then ActiveSheet.ChartObjects.Delete Application.ScreenUpdating = False With ActiveSheet.ChartObjects.Add(Range("A10").Left, Range("A10").Top, 450, 300) With .Chart .ChartType = xlLineMarkers .HasLegend = False .SeriesCollection.Add Source:=Range("A1:A2") 'формально .SeriesCollection(1).XValues = Array("май", "июнь", "июль") .SeriesCollection(1).Values = Array(3, 5, 4) ' Title .HasTitle = True .ChartTitle.Text = "= Лист1!R1C3" .ChartTitle.Font.Size = 10 ' X axis .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Text = "= Лист1!R20C1" .Axes(xlCategory, xlPrimary).AxisTitle.Font.Size = 10 .Axes(xlCategory, xlPrimary).TickLabels.Font.Size = 10 ' Y axis .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Text = "= Лист1!R21C1" .Axes(xlValue, xlPrimary).AxisTitle.Font.Size = 10 .Axes(xlValue, xlPrimary).TickLabels.Font.Size = 10 .Deselect Application.ScreenUpdating = True End With End With End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д