我已经订购了大约9张条形图。问题是,当您这样做时,图表之间的名称颜色会有所不同。
所以我想在所有图表中使每一行的颜色相同。
这段代码可以运行,但是它什么也没做,我不确定为什么吗?系列是正确的事情吗?我这里仅以其中的两个为例,实际情况中有8个ifs。
Sub Button3_Click()
For Each myChartObject In Sheets("Rank Calc").ChartObjects
For Each mySrs In myChartObject.Chart.SeriesCollection
If mySrs.Name = "Monarch" Then mySrs.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
If mySrs.Name = "Alpha" Then mySrs.Format.Fill.ForeColor.RGB = RGB(0, 255, 0)
Next
Next
End Sub
我认为系列可能是错误的事情,但是我的数据的排列方式是将所有名称都放在一列中,然后将其值放在其旁边的列中,如果这有助于确定“系列”是否是正确的选择改变颜色。
我现在也尝试过:
Sub Button3_Click()
Dim rPatterns As Range
Dim iCategory As Long
Dim vCategories As Variant
Dim rCategory As Range
Set rPatterns = Sheets("RankCalc").Range("AH1:AH8")
For Each myChartObject In Sheets("RankCalc").ChartObjects
With myChartObject.SeriesCollection(1)
vCategories = .XValues
For iCategory = 1 To UBound(vCategories)
Set rCategory = rPatterns.Find(What:=vCategories(iCategory))
.Points(iCategory).Format.Fill.ForeColor.RGB = rCategory.Interior.Color
Next
End With
Next
End Sub
但是它告诉我With myChartObject.SeriesCollection(1)
(该对象不支持该方法)。所以我不知道该怎么办。
答案 0 :(得分:1)
更改系列的颜色,
设置属性-> .Interior.Color
请参阅以下代码段...
Sub Button3_Click()
Dim myChartObject As ChartObject
Dim mySrs As Series
For Each myChartObject In Sheets("Sheet1").ChartObjects
For Each mySrs In myChartObject.Chart.SeriesCollection
Select Case mySrs.Name
Case "A"
mySrs.Interior.Color = RGB(255, 0, 0)
Case "B"
mySrs.Interior.Color = RGB(0, 255, 0)
Case "C"
mySrs.Interior.Color = RGB(0, 0, 255)
Case "D"
mySrs.Interior.Color = RGB(255, 255, 0)
Case "E"
mySrs.Interior.Color = RGB(0, 0, 0)
End Select
Next
Next
End Sub