打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用VBA做了个齿轮仪表图,绝绝子!

哈喽,大家好呀~

这个图表的使用环境,是完成度、进度、占比类型的数据可视化展示。

初看这个图表,感觉很简单是吧?没有过多的辅助数值,也没有过多的操作,根据数据的变化而变化是他唯一的特色

看着简单,但作者研究了半天,却只能想到用VBA来做,大家有没有想到好的制作方法,可以在评论区告知哟!

下面是制作步骤

STEP1:制作图表源

在A1单元格输入“数据源”,在A2:A101单元格区域输入100个1,作为图表的占位数据;

STEP2:选中A1:A101单元格区域,工具栏插入——图表——环形图,得到下面的图表。

STEP3:录入代码

按ALT+F11,打开VBE界面,选择图表所在代码区;

然后,在代码区,复制粘贴下面的代码:

Private Sub Worksheet_Change(ByVal Target As Range) '''工作表单元格值改变触发事件

 If Target.Row = 2 And Target.Column = 3 Then '''如果Target行2列3,即C2单元格时,则

ActiveSheet.ChartObjects("图表 1").Activate '''活动工作表的图表1被激活

For i = 1 To 100 '''循环变量1-100,代表图表的100个数据点

k = k + 1 '''计数器,计算当前的百分比值

ActiveChart.FullSeriesCollection(1).Points(i).Select '''根据变量i,逐个选中系列的数据点

If (k / 100) <= Round(ActiveSheet.[C2], 2) Then '''如果当前累计的百分比值,小于等于完成度的值(四舍五入到小数点后两位)

With Selection.Format.Fill '''操作被选择的对象的格式

 .ForeColor.RGB = RGB(77, 149, 179) '''填充色的RGB值为【77,149,179】

End With '''With结束语句

Else '''如果当前累计百分比值大于完成度的值

 With Selection.Format.Fill

.ForeColor.RGB = RGB(217, 217, 217) '''填充色的RGB值为【217,217,217】

End With

End If '''If语句结束

Next i '''循环语句结束

ActiveSheet.[C2].Select '''从图表的选中状态中退出,选择C2单元格

End If

End Sub '''结束工程

现在,当我们改变C2单元格的百分比值,图表就可以动态显示了,是不是有点酷呢?

关闭保存的时候,记得要将EXCEL文件保存为.XLSM启动宏的文件格式。

好啦,以上就是今天的VBA制图法。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
炫酷!用Excel的单元格来画图
19 用VBA批量生成小饼图
VBA代码非常诱人,学习有用的知识是自己的事情
VBA技术:你需要知道的一些VBA操作形状的代码
问与答111:如何使用VBA画直线?
VBA与Excel进阶系列-图表(下篇)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服