Кластерная диаграмма столбцов Excel 2013 в VBA
Я использую EXCEL VBA для создания новой диаграммы из двух рядов данных. Версия Excel 2013 года.
На оси X у меня есть годы, а на оси Y у меня есть некоторые конкретные значения для каждого года.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я создаю реальную диаграмму, она случайным образом выбирает один из трех доступных стилей, как показано на снимке экрана ниже.
Я создаю диаграмму с:
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Union(Sheets(SheetName).Range(Cells(1, 11), Cells(1, LastColumnNumber)), Sheets(SheetName).Range(Cells(4, 11), Cells(4, LastColumnNumber)))
Причина добавления Sheets(SheetsName)
тот факт, что я перемещаю диаграмму на новый лист после ее создания, так что это необходимо для сохранения ссылок.
LastColumnNumber
используется для подсчета столбца за последний год и его соответствующего значения.
Я пытался:
ActiveChart.ChartType = xlColumnClustered
Также я попытался записать новый макрос при смене стилей, и нет параметра, выбирающего один из этих 3.
В качестве обходного пути (но это не работает в VBA) я изменяю стиль диаграммы на что-то другое, чем стиль кластеризованных столбцов, и затем выбираю тот, который мне нужен.
PS Мне на самом деле нужен тот, который выбран на экране печати.
Как я могу заставить этот стиль применяться?
1 ответ
Насколько я понимаю, вам нужно это:
Chart.PlotBy = xlColumns
Или это:
Chart.PlotBy = xlRows
Смотрите ниже для контекста:
Sub InsertBar(myRange As Range)
Dim rngChart As Range
Dim myChart As Chart
Sheets(Operator.Value).Range("$A$10:$C$10").Select
Set myChart = ActiveSheet.Shapes.AddChart(xlColumnClustered, 500, 10, , 175).Chart
With myChart
.PlotBy = xlColumns
.ChartArea.Format.TextFrame2.TextRange.Font.Size = 8
.HasTitle = True
.ChartTitle.Text = "Title"
.SeriesCollection(1).Name = Range("B" & StartRow - 1).Value
.SeriesCollection(2).Name = Range("C" & StartRow - 1).Value
End With
End Sub