别开生面的充电图

来,我们看看效果:

此教程使用office2016版本,请2013版本以下朋友谨慎入坑。

1、 首先准备控件。

(1)点击【开发工具】选项卡下【插入】,找到【表单控件】下的【滚动条】,点击画出一个滚动条。

右键单击滚动条设置控件格式,将单元格链接设置为D2,并设置最大值和最小值。

2、准备数据源并制图

(1)手机电量B2单元格直接引用D2,这样能使数据系列的值随滚动条变化而变化。

选中B2:B3,【插入】选项卡下选择【堆积条形图】。

(2)在绘图区右键选择更改图表类型,选择第二种堆积条形图。

(3)双击坐标轴,设置坐标轴格式,最大值为100,最小值0。
删除图表标题,坐标轴,网格线等元素,完成整体轮廓。

(4)右键单击内侧的柱子,添加数据标签。

然后右键单击数据标签,设置数据标签格式。标签设置为B4单元格中的值,标签位置设置为“数据标签内”。

3、加入条件项。

如果需根据不同数值,显示不同颜色,那么设置条件如下:

则:

使用VBA实现图表的动态填充色。

(vba代码来自donata,万分感谢donata深夜两点帮我写代码,么么哒!)。

Private Sub Worksheet_Calculate()
'重新计算工作表或在图表上绘制更改的数据之后发生的事件
Application.ScreenUpdating = False
'关闭屏幕更新
ActiveSheet.ChartObjects('图表 1').Activate
'激活图表1
With ActiveChart.SeriesCollection(1).Format.Fill
'图表1的第一系列的填充格式,FullSeriesCollection是2013版本才有的,2010版本的代码是SeriesCollection
If Range('b2').Value > Range('b5').Value Then
.ForeColor.RGB = RGB(0, 176, 80)
'前景填充色
Else
.ForeColor.RGB = RGB(225, 204, 105)
End If
If Range('b2').Value <= Range('b6').Value Then
.ForeColor.RGB = RGB(255, 0, 0)
End If
End With
Application.ScreenUpdating = True
End Sub

最后,进行适当美化,OK。

今天的练习文件:

蓝奏云:https://wwr.lanzous.com/iEiPSoyx34d

和彩云:http://caiyun.139.com/front/#/detail?linkID=1B5CvGnyLsphU

作者:俞丹

ExcelHome云课堂助教

(0)

相关推荐