application.enablevents=false ...... application.enablevents=false 上述代码中加enablevents属性主要是为了在运行它下面的代码时,不再触发本事件,下面是对的 Private Sub Worksheet_Change(ByVal Target As Range) Dim Region As Range Set Region = [a2:c30] Application.EnableEvents = False Target.Offset(0, -1) = Application.WorksheetFunction.Max(Region.Columns(1)) + 1 Target.Offset(0, 1) = Target.Value + Target.Offset(0, 1) Application.EnableEvents = True End Sub 如果去掉enableevents则会陷入死循环,当然除了利用enableevents屏蔽死循环外,也可以利用if判断语句 Private Sub Worksheet_Change(ByVal Target As Range) Dim Region As Range Set Region = [a2:c30] 'Application.EnableEvents = False If Target.Column = 2 Then Target.Offset(0, -1) = Target.Row - 1 Target.Offset(0, 1) = Target.Value + Target.Offset(0, 1) End If 'Application.EnableEvents = True End Sub |