我有以下情况: 我有一个基于数据透视表的图表(数据透视图)。 如果存在某些条件,我现有的宏会将数据系列的背景颜色从“自动”更改为“图案填充”(点状背景)。效果很好,宏看起来像这样:
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属性吗?
答案 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
(个人而言,我宁愿明确指定“默认值”或主题颜色。)