這應該很簡單。當單元格的值發生變化時,我想觸發一些VBA代碼。單元格(D3)是來自另外兩個單元格=B3*C3
的計算。我曾嘗試方法2:VBA觸發宏單元格值更改
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target.Row = 3 Then
MsgBox "There was a change in cell D3"
End If
End Sub
由於該小區是當值的變化,因爲計算是一樣的,這是不觸發計算。我也試過:
Private Sub Worksheet_Calculate()
MsgBox "There was a calculation"
End Sub
但我有多個計算表上,它會觸發多次。有沒有一種方法可以確定哪些計算在計算事件中發生了變化?還是有另一種方式可以跟蹤D3的變化?
我將變量和公共函數放置在單元格所在的vba表單中。我將公式更改爲'= D3AlertOnChange(B3 * C3)'並且它說'#NAME?'我是否將代碼放置在錯誤的位置? –
嘗試將其放入標準模塊。右鍵單擊任何圖紙並選擇「插入 - >模塊」。 – Chel
雖然我可以調整此解決方案以滿足我的需求,但我想提到的是,在單元格更新單元格之前觸發此事件,而不是之後。在函數的開頭放置一個'MsgBox(val)',你可以看到函數獲得了新的參數值,但是你可以看到該表單元格中的值尚未更新,所以要小心。 –