当某个指定单元格的值变化的时候,才触发某事件,其他单元格的值变化,不触发该事件。
如:A1=IF(B1>10,1,2), B1=INT(RAND()*100)。只有当A1改变的时候才触发事件MsgBox "A1 Changed!"
该怎样实现?用Worksheet_Calculate还是Worksheet_Change?或者是其他事件?谢谢!
用Worksheet_Calculate事件的话,每计算一次都会出来对话框,而此时A1的值不一定改变了; 用Worksheet_Change事件的话,对按F9刷新的数据没有反应。
如何达到只有A1数据变化的时候才触发MsgBox事件?谢谢!
Public k As Byte
复制代码 Private Sub Workbook_Open() k = Sheets("sheet1").Range("a1").Value End Sub
复制代码 Private Sub Worksheet_Calculate() If Range("a1").Value <> k Then MsgBox "A1 Changed" k = Range("a1").Value End If End Sub
复制代码 试试,3段在不同模块里头。
|