根据源单元格更改图表颜色(条形)(使用条件格式和VBA)

时间:2018-12-12 18:48:14

标签: excel vba

在给定源单元格颜色的情况下,尝试添加按钮以更改条形图上的颜色。

这是我正在使用的代码:

Private Sub CommandButton2_Click()

Dim oChart As ChartObject
Dim MySeries As Series
Dim FormulaSplit As Variant
Dim SourceRangeColor As Long
Dim seriesArray() As Variant
Dim pointIterator As Integer

For Each oChart In ActiveSheet.ChartObjects

For Each MySeries In oChart.Chart.SeriesCollection

    seriesArray = MySeries.Values
    For pointIterator = 1 To UBound(seriesArray)
        FormulaSplit = Split(MySeries.Formula, ",")
        SourceRangeColor = Range(FormulaSplit(2)).Item    (pointIterator).Interior.Color
        MySeries.Points(pointIterator).Interior.Color = SourceRangeColor
      Next pointIterator
  Next MySeries
Next oChart

End Sub

如果我自己填写各个单元格,则效果很好,但是,如果我设置单元格以通过条件格式填充其颜色,则上面的代码会将所有条形更改为白色。我假设这是因为它没有读取条件格式的单元格填充,所以它默认为白色。

有什么办法可以解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:2)

可以通过DisplayFormat属性访问通过CF应用的格式:

Range(FormulaSplit(2)).Item (pointIterator).DisplayFormat.Interior.Color