Я работал над этим в течение бесчисленных часов, не имея возможности продолжить. Любая помощь с благодарностью!
Я пытаюсь создать макрос, который может проходить и создавать около 55 графиков. У меня возникают трудности при работе с именованным диапазоном, и я верю (пока гуру здесь не докажут), что именованные диапазоны - это путь.
Я ни в коем случае не закончил с этим (я добавлю функцию цикла), но в целях иллюстрации 3 диапазона (и 3 линии, которые я хочу построить на одном графике) выглядят следующим образом:
Set rng1 = Union(Cells(SA_Row, 11), Cells(SA_Row, 42), Cells(SA_Row, 72), Cells(SA_Row, 122))
Set rng2 = Union(Cells(SA_Row, 11), Cells(SA_Row, 43), Cells(SA_Row, 73), Cells(SA_Row, 123))
Set rng3 = Union(Cells(SA_Row, 11), Cells(SA_Row, 44), Cells(SA_Row, 74), Cells(SA_Row, 124))
Следовательно, все 3 строки будут иметь одинаковое начальное значение, но тогда между различными отдельными ячейками в пределах диапазона будет большой интервал. Причина в том, что это представляет цели для разных лет (например, 2020, 2030, 2040 и т. Д.). До сих пор я в основном занимался форматированием аргументов, но я добавлю «Count = X to Y ... Выбрать регистр и т. Д.». Это хороший способ пойти правильно? В любом случае, код, который я написал до сих пор, выглядит так:
Set cht = Worksheets("Graphs").ChartObjects.Add(Top:=Graph_Position, Left:=910, Width:=160, Height:=75)
Set rng1 = Union(Cells(SA_Row, 11), Cells(SA_Row, 42), Cells(SA_Row, 72), Cells(SA_Row, 122))
Set rng2 = Union(Cells(SA_Row, 11), Cells(SA_Row, 43), Cells(SA_Row, 73), Cells(SA_Row, 123))
Set rng3 = Union(Cells(SA_Row, 11), Cells(SA_Row, 44), Cells(SA_Row, 74), Cells(SA_Row, 124))
With cht.Chart
.ChartType = xlLineMarkers
.HasLegend = False
.HasAxis(xlCategory) = False
.ChartArea.Border.LineStyle = xlNone
.Axes(xlValue, xlPrimary).TickLabels.Font.Name = "VWAG TheSans"
With .Axes(xlValue)
.MaximumScale = 1
.MajorUnit = 0.2
.Format.Line.Visible = msoFalse
.MajorGridlines.Format.Line.Weight = 0.35
.MajorGridlines.Format.Line.ForeColor.RGB = RGB(217, 217, 217)
.TickLabels.Font.Size = 4
.TickLabels.NumberFormat = "0%"
End With
'Set rngSource = Range(rng1, rng2, rng3)
'.SetSourceData rngSource
' .SeriesCollection.NewSeries.Values = Range("rng1")
' .SeriesCollection.NewSeries.Values = Range("rng2")
' .SeriesCollection.NewSeries.Values = Range("rng3")
With .FullSeriesCollection(1)
.Format.Line.ForeColor.RGB = RGB(5, 204, 216)
.MarkerStyle = 8
.MarkerSize = 3
.Format.Fill.ForeColor.RGB = RGB(5, 204, 216)
.Format.Line.Weight = 1
End With
With .FullSeriesCollection(2)
.Format.Line.ForeColor.RGB = RGB(192, 10, 0)
.MarkerStyle = 8
.MarkerSize = 3
.Format.Fill.ForeColor.RGB = RGB(192, 10, 0)
.Format.Line.Weight = 1
End With
With .FullSeriesCollection(3)
.Format.Line.ForeColor.RGB = RGB(50, 200, 59)
.MarkerStyle = 8
.MarkerSize = 3
.Format.Fill.ForeColor.RGB = RGB(50, 200, 59)
.Format.Line.Weight = 1
End With
End With
"'"
- это просто я играю с другой попыткой. Пока у меня либо нет данных на графике, либо просто 1 строка вместо 3 отдельных. Пожалуйста, помогите!