说明

我们一般触发或者执行一段宏命令都是通过自定义按钮或者自定义快速访问栏调用相关宏命令,前一段时间在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请留言,谢谢!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐