1,451
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Private Sub Form_Load()
Const BASE_VALUE As Long = 3 '基准值'
Dim arrValues(1 To 5, 1 To 3)
Dim i As Long
Dim value As Double
MSChart1.Stacking = True '两系列叠加'
'叠加状态Y轴不能自动缩放,自动状态下最大值还是按非叠加方式统计的。'
MSChart1.Plot.Axis(VtChAxisIdY).ValueScale.Auto = False
MSChart1.Plot.Axis(VtChAxisIdY).ValueScale.Maximum = 6
MSChart1.Plot.Axis(VtChAxisIdY).ValueScale.MajorDivision = 2
MSChart1.Plot.Axis(VtChAxisIdY).ValueScale.MinorDivision = 3
'系列1红,系列2蓝'
MSChart1.Plot.SeriesCollection(1).DataPoints(-1).Brush.FillColor.Set 255, 0, 0
MSChart1.Plot.SeriesCollection(2).DataPoints(-1).Brush.FillColor.Set 0, 0, 255
For i = 1 To 5
arrValues(i, 1) = ChrW(64 + i)
value = i
If value > BASE_VALUE Then '超过基准值就切成红蓝两段'
arrValues(i, 2) = BASE_VALUE
arrValues(i, 3) = value - BASE_VALUE
Else '否则只显示红色部分'
arrValues(i, 2) = value
End If
Next i
MSChart1.ChartData = arrValues
End Sub