Change event occurs

O

Otto Moehrbach

Excel & Windows XP
The following simple Change event macro fires if the active cell is blank
and I hit the Delete key. Since no change to the contents of the cell
occurred, why does it fire?
Thanks for your help. Otto
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "It changed."
End Sub
 
J

John Coleman

Otto said:
Excel & Windows XP
The following simple Change event macro fires if the active cell is blank
and I hit the Delete key. Since no change to the contents of the cell
occurred, why does it fire?
Thanks for your help. Otto
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "It changed."
End Sub

Presumably because Change is fired on any assignment - even if the
assignment was not a genuine change. If you have a cell containing say
5 and you enter 5 in that cell, it would also fire. There would be a
definite overhead in comparing the old value and the new value of a
range before firing the event. In the off-hand chance you want the
event to fire only in the event of an actual change you could mimic
this in code by storing the old data (maybe by having the selection
change event write it to a public variable) and then compare it at the
start of the change event, terminating the call if the values are the
same.

Hope that helps

-John Coleman
 
O

Otto Moehrbach

Thanks John. Otto
John Coleman said:
Presumably because Change is fired on any assignment - even if the
assignment was not a genuine change. If you have a cell containing say
5 and you enter 5 in that cell, it would also fire. There would be a
definite overhead in comparing the old value and the new value of a
range before firing the event. In the off-hand chance you want the
event to fire only in the event of an actual change you could mimic
this in code by storing the old data (maybe by having the selection
change event write it to a public variable) and then compare it at the
start of the change event, terminating the call if the values are the
same.

Hope that helps

-John Coleman
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top