【Excel VBA】单元格变更事件,单元格内容变更自动触发:Worksheet_Change

说明

我们一般触发或者执行一段宏命令都是通过自定义按钮或者自定义快速访问栏调用相关宏命令,前一段时间在CSDN中回答网友提问的问题时,我无意中测试成功了一些Excel的内置事件,其中符合网友要求的就是单元格变更事件Worksheet_Change。
添加该事件的方法:Alt+F11调出Microsoft Visual Basic for Applications窗口,双击该文件下的相应的Sheet,例如Sheet1,在右侧出现的Sheet1 (代码)窗口的左上部选择Worksheet,在其右边的选择框中选择Change。下方的代码区则自动生成相应的代码段。如下图:
添加事件方法

实现功能

根据网友提出的需求:在单元格中选择“开”时,其右侧为随机函数生成一个随机数,当选择“关”时,其右侧为0。需求如下图:

需求示意

代码code

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Cells.Count > 1 Then
    '如果目标区域含有多个单元格 则退出
    Exit Sub
  End If

  If Target.Column <> 2 Or Target.Row <> 3 Then
    '如果目标单元格不是B3 则退出
    Exit Sub
  End If

  If Target.Value = "关" Then
    '如果选择的是关,则将C3单元格赋值为 0
    Cells(3, 3).Value = "0"
  Else
    '如果选择的是开,则将C3单元格赋公式
    Cells(3, 3).Formula = "=RAND()"
  End If
End Sub

使用说明

1、在上述代码中我将系统自动生成的代码段也放入了进来,方便初学者对比截取。
2、事件的参数是Range对象,无论是哪个单元格的值发生变化,都会触发该语句,所以需要在语句的最开始需要对传入的单元格进行判断,如果不是开关所在的B3单元格,则退出该语句。
3、请点击下载本文附件

如有意见建议或使用中出现Bug请留言,谢谢!

  • 8
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

碰碰虎

20年挑灯夜战秃了头,有赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值