В настоящее время я пытаюсь создать столбчатую диаграмму с накоплением в Excel, используя предварительно созданные массивы.Массивы не ссылаются ни на какие диапазоны на листе, а скорее представляют расчеты этих данных.
Проблема, с которой я сталкиваюсь, заключается в том, что при создании столбчатой диаграммы с накоплением данные не располагаются вертикально в одном и том же столбце, а наоборот, второй набор данных располагается вертикально рядом с первым набором данных.Я приложу изображение ниже, но сейчас позвольте мне показать вам мой код, пожалуйста, не делайте этого, в этой подпрограмме я на самом деле создаю 4 разные диаграммы, но только один из них должен быть столбцом с накоплением, поэтому я буду ссылаться на столбец с накоплениемкод ниже:
Sub buildCharts()
Dim myChart as Shape
Set myChart = wsRawData.Shapes.AddChart2(Left:=792, Top:=0, Width:=264, Height:=192)
With myChart.Chart
'load the data
.SeriesCollection.NewSeries
.SeriesCollection(1).Values = myArray1
.SeriesCollection.NewSeries
.SeriesCollection(2).Values = myArray2
.SeriesCollection.NewSeries
.SeriesCollection(3).Values = myArray3
'x-axis
.SeriesCollection(1).XValues = Array("J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D")
'set the chart type
.FullSeriesCollection(1).ChartType = xlColumnStacked
.FullSeriesCollection(1).AxisGroup = 1
.FullSeriesCollection(2).ChartType = xlColumnStacked
.FullSeriesCollection(2).AxisGroup = 1
.FullSeriesCollection(3).ChartType = xlLine
.FullSeriesCollection(3).AxisGroup = 1
.FullSeriesCollection(3).Format.Line.Weight = 1.25
'edit
.ChartStyle = 209
.HasTitle = True
.chartTitle.Text = "My Chart"
.ChartArea.Font.Color = vbWhite
.ChartArea.Interior.ColorIndex = 1
.HasLegend = True
.Legend.Position = xlLegendPositionBottom
.Axes(xlCategory).MajorGridlines.Delete
End With
End Sub
Вот изображение выходного кода выше:
![enter image description here](https://i.stack.imgur.com/qF4ki.jpg)
Как вы можете видеть, какстолбцы были сложены неправильно.
Теперь, когда я использую функцию «Запись макроса» на вкладке разработчика, я получаю следующий код:
ActiveChart.FullSeriesCollection(1).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(1).AxisGroup = 1
ActiveChart.FullSeriesCollection(2).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(2).AxisGroup = 1
ActiveChart.FullSeriesCollection(3).ChartType = xlLine
ActiveChart.FullSeriesCollection(3).AxisGroup = 1
ActiveChart.FullSeriesCollection(1).ChartType = xlColumnStacked
И при создании диаграммы вручную сДанные он создает на диаграмме отлично сложены.
Так что я не уверен, что мне не хватает этого.Я покопался в Интернете, но не смог ничего найти и надеюсь, что кто-то здесь может дать мне лучшее понимание!
Заранее спасибо.