Worksheet_Change事件在单元格内容被手动修改时响应。但是若单元格的值是因公式计算结果改变而改变的,那么Worksheet_Change事件就不响应,这个时候就需要用到Worksheet_Calculate事件。
#一、现象复盘
Worksheet_Change事件代码如下
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
MsgBox Target.Address
End If
End Sub
公式改变单元格值worksheet
以上代码,当第3列单元格内容改变时,worksheet_change事件响应,输出单元格地址。视频中可以看到,手动修改单元格内容时,worksheet_change事件响应,但是当单元格的值是因为公式计算改变的时候,worksheets_change事件不响应。
#二、worksheet_calculate计算响应事件
Private Sub Worksheet_Calculate()
MsgBox "响应"
End Sub
worksheet_calculate事件响应
以上代码是计算响应事件,视频中可以看到,当单元格内公式计算结果改变时,该事件会响应。注意worksheet_calculate事件无法像worksheet_change事件一样定义对象单元格(过程名后面的括号中定义的),所以当事件响应时,需要写代码寻找需要响应的单元格。