避免VBA中的单元格更改recursion

用户input后,我需要对单元格进行一些操作。 现在,我正在做这样的事情:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Target.Worksheet.Range("H5")) Is Nothing Then MyMacro End Sub 

问题是, MyMacro也在改变单元格,recursion调用Worksheet_Change ,导致堆栈溢出。

我怎样才能避免这一点,仍然能够从我的macros的细胞工作?

用这个:

 Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Not Intersect(Target, Target.Worksheet.Range("H5")) Is Nothing Then MyMacro Application.EnableEvents = True End Sub