前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel实战技巧83: 制作动态的笑脸图

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

作者头像
fanjy
发布2020-07-14 16:16:33
1.1K0
发布2020-07-14 16:16:33
举报
文章被收录于专栏:完美Excel完美Excel

这是在contexturesblog.com中看到的一个技巧,非常有意思,稍作整理和修改,在这里和大家分享。

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

图1

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

图2

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

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo errHandler

Dim sh As Shape

Dim myMin As Double

Dim myMax As Double

Set sh = Shapes("HappyFace")

'Excel 2003中,min=0.7181 max=0.8111

'Excel 2007后,min=-0.04653 max0.04653

myMin = -0.04653

myMax = 0.04653

If Target.Address = "

Application.EnableEvents = False

sh.Adjustments.Item(1) _

= myMin + (myMax - myMin) * Target.Value/ 100

End If

exitHandler:

Application.EnableEvents = True

Exit Sub

errHandler:

MsgBox Err.Number & " " &Err.Description

GoTo exitHandler

End Sub

这里,添加了一段简单的代码,让单元格H3中的数字连续改变,从而实现笑脸不断变化,如下图3所示。

图3

下面,我们让笑脸随着分数的变化,颜色也同时发生变化,如下图4所示。

图4

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

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo errHandler

Dim sh As Shape

Dim myMin As Double

Dim myMax As Double

Dim myColor As Long

Set sh = Shapes("HappyFace")

'Excel 2003中, min=0.7181 max=0.8111

'Excel 2007后, min=-0.04653 max=0.04653

myMin = -0.04653

myMax = 0.04653

If Target.Address = "

Application.EnableEvents = False

sh.Adjustments.Item(1) _

= myMin + (myMax - myMin) * Target.Value/ 100

'修改形状颜色

'小于60% 红色

'60%- 90% 橙色

'90%-100% 绿色

Select Case Target.Value

Case Is >= 90: myColor _

= RGB(146, 208, 80) '绿色

Case Is >= 60: myColor _

= RGB(255, 192, 0) '橙色

Case Else: myColor _

= RGB(255, 0, 0) '红色

End Select

sh.Fill.ForeColor.RGB = myColor

End If

exitHandler:

Application.EnableEvents = True

Exit Sub

errHandler:

MsgBox Err.Number & " " &Err.Description

GoTo exitHandler

End Sub

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档