如下图1所示,当斜率为正值时,图表背景显示为橙色;为负值时,图表背景显示为绿色。
图1
这是如何做到的呢?有两种方法。
第1种:使用条件格式
1. 绘制图表。
2. 选择图表,按住Alt键拖动图表边缘让其覆盖住单元格区域E3:L15。
3. 将图表区域和绘图区域都设置成透明(即无填充)。
4. 选择单元格区域E3:L15(如果因图表覆盖而不方便选择,可先将图表拖开,之后再将图表拖回来),设置条件格式规则如下图2所示。
图2
第2种:使用VBA
按Alt+F11,打开VBE,双击要设置图表背景色的工作表模块,输入代码:
Private Sub Worksheet_Calculate()
Dim myColor As Long
Dim myChart As String
Application.EnableEvents = False
‘Sheet2为要设置图表背景色的工作表
If ActiveSheet.Name <> "Sheet2" Then Exit Sub
‘图表名
myChart = "Chart 1"
If [c15] <> [OldSlope] Then
If [c15] > 0 Then
myColor = RGB(250, 190, 145)
Else
myColor = RGB(135, 235, 145)
End If
ActiveSheet.ChartObjects(myChart).Activate
'为图表区域添加颜色
With ActiveSheet.Shapes(myChart).Fill
.Visible = msoTrue
.ForeColor.RGB = myColor
.Transparency = 0
.Solid
End With
'为绘图区域添加颜色
ActiveChart.PlotArea.Select
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = myColor
.Transparency = 0
.Solid
End With
ActiveWorkbook.Names.Add Name:="OldSlope",RefersToR1C1:="=" + CStr(Cells(15, 3).Value)
End If
Application.EnableEvents = True
Range("C17").Select
End Sub
两种方法各有优缺点,就看你的选择了。