在Excel中基于X轴标题更改图表中的条形图颜色

时间:2014-12-11 10:08:31

标签: excel vba excel-vba charts

我希望自动更改导出的Excel文件中基于Quarter-Quarter分组的图表条形颜色,并且手动操作最少。我试过VBA这样做,但因不知道如何获得X轴标题而被阻止。

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(1).Select

'Check bar caption
'If bar captioin = 'FY13 Q1' then do following...

ActiveChart.SeriesCollection(1).Points(1).Select
With Selection.Format.Fill
    .Visible = msoTrue
    .ForeColor.ObjectThemeColor = msoThemeColorAccent6
    .ForeColor.TintAndShade = 0
    .ForeColor.Brightness = -0.25
    .Transparency = 0
    .Solid
End With

我的问题:

  1. VBA是最好的方法吗?
  2. 还有更好的方法吗?有些excel内置函数可以支持吗?
  3. 如果我想尽可能自动化整个过程,如何在不创建宏的情况下将宏集成到导出的Excel文件中 - >复制 - >粘贴。

1 个答案:

答案 0 :(得分:0)

  1. 我会使用VBA,但那就是我使用的
  2. 您正在寻找的房产是
  3. ActiveSheet.Charts("Chart 1").Axes(xlCategory).AxisTitle.Text

    1. 要确保宏在所有工作表中都可用,请创建一个addin文件并要求将来的用户安装它。您没有提到您正在使用的Excel版本,但Addins上的Excel 2010参考是http://msdn.microsoft.com/en-us/library/office/gg597509%28v=office.14%29.aspx
    2. 编辑:重读你的帖子我想你可能想问一下数据标签而不是X轴标题。在这种情况下,您将要使用:

      ActiveSheet.Charts("Chart 1").SeriesCollection(1).Points(1).DataLabel.Text

      现在有了这个和上面的内容,你需要确保标题/数据标签首先存在,例如:

      If ActiveSheet.Charts("Chart 1").SeriesCollection(1).Points(1).HasDataLabel Then...

      如果您需要有关此方面的帮助,或循环浏览图表/积分,最好先查找答案,如果找不到则另外提出问题。

      干杯!