VBA生成的Excel图表中的标签。还包括分类/着色

VBA生成的Excel图表中的标签。还包括分类/着色,vba,excel,charts,Vba,Excel,Charts,我使用VBA从数据透视表填充图表。在第一张图片中,我根据月份和类别A、C、U等对值进行排序。在第二张图片中,我只想按类别进行排序 问题是,我想把类别名称放在订书钉下面,就像上面图片中的月份一样。出于某种原因,仅显示第一个类别的名称,即具有最大值的类别 我试过谷歌搜索,但我不知道标签叫什么。我试着用ApplyDataLabels做点什么,但并不完全正确;它在订书钉的顶部添加了标签。我希望它们在X轴下 另一方面,我希望同一个类别始终具有相同的颜色,尽管我首先按月份和名称,然后按发生次数对图表进行不同

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

问题是,我想把类别名称放在订书钉下面,就像上面图片中的月份一样。出于某种原因,仅显示第一个类别的名称,即具有最大值的类别

我试过谷歌搜索,但我不知道标签叫什么。我试着用ApplyDataLabels做点什么,但并不完全正确;它在订书钉的顶部添加了标签。我希望它们在X轴下

另一方面,我希望同一个类别始终具有相同的颜色,尽管我首先按月份和名称,然后按发生次数对图表进行不同的排序。这可能吗?我打算稍后按字母顺序对第一个图表类别进行排序

非常感谢!

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

Dim myarray As Variant
myarray = Array("A", "B", "C")
ActiveChart.SeriesCollection(1).XValues = myarray
这会将类别轴标签设置为数组中的值。一个系列的X值就是您要寻找的。看起来您有多个系列,但我想上面的代码仍然可以工作

至于第二个问题。我认为系列的颜色是根据您将系列添加到图表中的顺序设置的。因此,您可以始终以相同的顺序将序列添加到图表中。另一个选择是有一个程序循环图表中的所有系列,并根据系列名称给它们上色。大致如下:

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

谢谢你的回复!我实际上是将XValue设置为我想要的范围,但它只返回第一个值。我会尝试你的建议,我的第二个问题以后,谢谢!