對於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