VBA生成的Excel图表中的标签(?)。还排序/着色

时间:2014-07-14 19:06:14

标签: vba excel-vba charts excel

我正在使用VBA从数据透视表中填充图表。首先(如第一张图片),我根据月份和类别(A,C,U等)对值进行排序。后来(如第二张图片),我只想按类别排序。

问题,以及严重头痛的根源,是我想要主食下的类别名称,就像我在上图中的月份一样。出于某种原因,仅显示第一个类别(具有最大值的类别)的名称。

我尝试过谷歌搜索,但我不知道标签(?)被调用了什么。我用ApplyDataLabels尝试了一些东西,但它不是很正确;它在订书钉顶部添加了标签。我希望他们在X轴下。

另一方面,我希望相同的类别总是具有相同的颜色,即使我在图表之间对它们进行不同的排序(逐个月和名称,后来由出现)。这甚至可能吗? (我打算稍后按字母顺序对第一个图表类别进行排序。)

非常感谢提前! enter image description here

1 个答案:

答案 0 :(得分:0)

对于标签,请尝试以下代码:

Dim myarray As Variant
myarray = Array("A", "B", "C")
ActiveChart.SeriesCollection(1).XValues = myarray

这会将类别轴标签设置为数组中的值。一系列的XValues是你正在寻找的。看来你有多个系列,但我想上面的代码应该仍然有效。

至于第二个问题。我认为系列的颜色是根据您将系列添加到图表的顺序设置的。因此,您可以始终以相同的顺序将系列添加到图表中。另一种选择是让程序循环遍历图表中的所有系列,并根据系列名称对它们进行着色。这些方面的东西:

For i = 1 To ActiveChart.SeriesCollection.Count
   If (ActiveChart.SeriesCollection(i).Name = "A") Then
      ActiveChart.SeriesCollection(i).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
   End If
Next