VBA中的Excel 2013“群集柱形图”

我正在使用EXCEL VBA从两行数据创build一个新的图表。 Excel版本是2013年。

在X轴上,我有几年,在Y轴上,每年都有一些特定的值。

我面临的问题是,当我创build实际的图表时,它将随机select三种样式中的一种,如下面的屏幕截图所示。

我正在创build图表:

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)的原因是我在创build图表后将图表移动到新图表,所以需要保留引用。

LastColumnNumber用于计算上一年的LastColumnNumber ,它是相应的值。

我努力了:

 ActiveChart.ChartType = xlColumnClustered 

另外我也尝试过在改变样式的时候录制一个新的macros,并且没有select其中之一的参数。

Excel 2013图表类型选择

作为一种解决方法(但在VBA中不起作用),我将图表样式改为除了“ 聚集列”样式之外的东西,而不是select我需要的样式。

PS我实际上需要在附加的打印屏幕中select一个。

我如何强制这个风格被应用?

据我所知,你需要这个:

 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