Excel实用技巧:动态微笑图

我偶然发现了一个技术,很有意思。在这里稍微修改一下分享给大家。

如下图1所示,工作表中绘制了一个笑脸,嘴唇的弧度根据单元格H3中的值而改变。数值在0到50之间,是哭脸。50后是笑脸。

Excel实战技巧:动态的笑脸图

图1

在单元格H3中,设置了数据有效性,在该单元格中只能输入0到100之间的整数,如下面的图2所示。

Excel实战技巧:动态的笑脸图

图2

在笑脸所在的工作表模块中,输入代码:

私有子工作表_Change(ByVal目标作为范围)

出错时转到错误处理程序

将sh标注为形状

将myMin调成Double

将myMax调成Double

set sh = Shapes(& # 8220;快乐脸& # 8221;)

‘在Excel 2003中,最小值=0.7181,最大值=0.8111

‘在Excel 2007之后,最小值=-0.04653最大值0.04653

myMin = -0.04653

myMax = 0.04653

如果目标。地址= & # 8220;3美元港币。然后

申请。EnableEvents = False

先令调整。第(1)项

= my min+(my max & # 8211;myMin)* Target.Value/ 100

如果…就会结束

exitHandler:

申请。EnableEvents = True

出口接头

错误处理程序:

MsgBox错误。数量和数量。””& amp呃。描述

转至exitHandler

末端接头

这里添加了一个简单的代码,使单元格H3中的数字不断变化,这样笑脸就不断变化,如下图3所示。

Excel实战技巧:动态的笑脸图

图3

接下来让笑脸随着分数变化,颜色也变化,如下图4所示。

Excel实战技巧:动态的笑脸图

图4

对应的工作表模块代码如下:

私有子工作表_Change(ByVal目标作为范围)

出错时转到错误处理程序

将sh标注为形状

将myMin调成Double

将myMax调成Double

暗淡我的颜色一样长

set sh = Shapes(& # 8220;快乐脸& # 8221;)

‘在Excel 2003中,最小值=0.7181,最大值=0.8111

‘在Excel 2007之后,最小值=-0.04653,最大值=0.04653

myMin = -0.04653

myMax = 0.04653

如果目标。地址= & # 8220;3美元港币。然后

申请。EnableEvents = False

先令调整。第(1)项

= my min+(my max & # 8211;myMin)* Target.Value/ 100

‘修改形状颜色

‘不到60%的红色

‘60%- 90%橙色

‘90%-100%绿色

选择案例目标。价值

案例是& gt= 90: myColor _

= RGB(146,208,80)& # 8216;绿色的

案例是& gt= 60: myColor _

= RGB(255,192,0)& # 8216;橙色的

其他案例:myColor _

= RGB(255,0,0)& 8216;红色

结束选择

先令Fill.ForeColor.RGB = myColor

如果…就会结束

exitHandler:

申请。EnableEvents = True

出口接头

错误处理程序:

MsgBox错误。数量和数量。””& amp呃。描述

转至exitHandler

末端接头

同样,我们也可以设置一个代码,让笑脸不断变化,如下图5所示。

Excel实战技巧:动态的笑脸图

图5

风险提示:请谨慎添加本网站联系方式,注意识别。本网站的观点和行为不代表大盘站。如果您联系本网站,请检查联系信息。版权声明:本网站所有文章,除非另有说明或标注,均匿名投稿。如果本站内容侵犯了原作者的合法权益,可以联系站长处理。