对于VBA的事件触发来说,如果将事件选择为Change,但是单元格的变化是由公式引起的,则事件不会触发。
如:B3 = B4 + B5,如果选择Change事件,定义Target.Address = B3,当B4或B5发生变化而引起B3的数值变化时,事件不会触发。
这种情况下需要选择的事件为Calculate,当有计算发生时触发。
如下:
Private Sub Worksheet_Calculate()
If Range("B3").Value > 99 Then MsgBox "Overflow" End If
End Sub