0

我正在使用 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 个中的一个。

Excel 2013 图表类型选择

作为一种解决方法(但它在 VBA 中不起作用),我将图表样式更改为集群列样式以外的其他样式,而不是选择我需要的样式。

PS我实际上需要在附加的打印屏幕中选择的那个。

如何强制应用该样式?

4

1 回答 1

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
于 2017-01-31T15:26:07.130 回答