这可能是一个基本问题,但我一直很难为我的问题找到一个好的解决方案。
我正在尝试在VBA中以编程方式创建图表。该图表需要有3个系列,其中2个系列为xlColumnStacked,1个系列为xlColumnClustered。我们的想法是让1个系列属于xlColumnClustered类型,而另外两个是堆叠的。这将导致两列的并排比较。
这可能吗?
我尝试更改每个系列类型,但结果是整个图表类型将根据更改的最后一个系列进行更改。 (例如 - >添加的最后一个系列是xlStacked,所有三个系列都是堆叠的)
我正在使用Excel 2007和嵌入式VBA宏编辑器。
答案 0 :(得分:0)
您可以通过用户界面手动执行此操作吗?您在代码中执行的操作在逻辑上与在UI中执行的操作相同吗?使用UI,您需要选择要更改其类型的特定系列。你是在代码中这样做而不是设置整个图表的类型吗?
对于与Excel图表有关的任何内容,我建议John Peltier's site
答案 1 :(得分:0)
感谢Stackoverflow的贡献者。我找到了不同的部分(答案)并将它们放在一起。我有两个系列,试图把不同类型的图表放在同一个图表上。
Set Chrt = ws.Shapes.AddChart.Chart
Set s1 = Chrt.SeriesCollection.NewSeries
Set s2 = Chrt.SeriesCollection.NewSeries
With Chrt
.'this part chart part'
End With
With s1
.ChartType = xlColumnClustered
.Values = ActiveSheet.Range("c3:c24")
.XValues = ActiveSheet.Range("b3:b24")
.HasDataLabels = True
.AxisGroup = xlPrimary
End With
With s2
.ChartType = xlLineStacked
.AxisGroup = xlSecondary
.Values = ActiveSheet.Range("d3:d24")
.XValues = ActiveSheet.Range("b3:b24")
.HasDataLabels = True
End With
这是我的解决方案而且有效。附:我正在使用excel 2007