图表数据系列的格式不正确

时间:2019-03-18 13:27:06

标签: excel vba charts excel-charts

我有以下情况: 我有一个基于数据透视表的图表(数据透视图)。 如果存在某些条件,我现有的宏会将数据系列的背景颜色从“自动”更改为“图案填充”(点状背景)。效果很好,宏看起来像这样:

ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.FullSeriesCollection(31).Select

With Selection.Format.Fill
    .Visible = msoTrue
    .Patterned msoPattern10Percent
    .ForeColor.RGB = RGB(255, 255, 255)
    .BackColor.RGB = RGB(135, 206, 235)

End With

但是,如果条件发生变化,则应使用宏将背景色设置回“自动”。 我尝试使用宏录制来录制它,结果看起来像这样:

ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.FullSeriesCollection(31).Select

Selection.Format.Fill
.Visible = msoTrue

现在的问题是执行后没有任何更改-因此背景仍然是虚线。 有谁知道如何使用宏将背景色设置回“自动”?可能使用.Patterned属性吗?

1 个答案:

答案 0 :(得分:2)

在录制时,Pattern Fill下没有自动设置,甚至没有设置。

要将样式从自动模式切换为自动模式,您需要设置一些设置;特别是.Solid会关闭图案。

With Selection.Format.Fill
    .Visible = msoTrue
    .Transparency = 0
    .Solid
    .ForeColor.RGB = RGB(255, 255, 255)
End With

您将ForeColor设置为您认为是自动。 (您还可以根据图表类型以及是否需要渐变来设置一些BackColor。)

我想另一种方法是使用相同的Fore和BackColor来实现纯色图案。


在查看填充选项时,有一个Automatic选项可以单击,但是您仍然必须选择一种颜色。它会生成与上述代码等效的代码(除非您选择主题颜色)。


通过此similar question,您可以使用已弃用但仍在运行的Excel 2003语法来应用xlAutomatic

ActiveChart.FullSeriesCollection(1).Interior.ColorIndex = xlAutomatic

(个人而言,我宁愿明确指定“默认值”或主题颜色。)