Excel 如何防止在添加或删除行时运行工作表更改事件?

Excel 如何防止在添加或删除行时运行工作表更改事件?,excel,vba,Excel,Vba,说到编程,我完全是个新手。我正在制作一个电子表格来获取培训信息。下面列出的代码输入用户名(来自将用户名定义为窗口用户名的模块)、日期和时间。我的问题是,当添加或删除行时,会导致sub运行。我能做些什么来防止这种情况?提前感谢您的帮助 Private Sub Worksheet_Change(ByVal Target As Range) Set Rng = Range("D11:D88") If Not Intersect(Target, Rng) Is Nothing Then Applic

说到编程,我完全是个新手。我正在制作一个电子表格来获取培训信息。下面列出的代码输入用户名(来自将用户名定义为窗口用户名的模块)、日期和时间。我的问题是,当添加或删除行时,会导致sub运行。我能做些什么来防止这种情况?提前感谢您的帮助

Private Sub Worksheet_Change(ByVal Target As Range)
Set Rng = Range("D11:D88")
If Not Intersect(Target, Rng) Is Nothing Then
  Application.EnableEvents = False
  Target(1).Offset(0, 1).Value = Environ$("username")
  Target(1).Offset(0, 2).Value = Date
  Target(1).Offset(0, 3).Value = Time
  Application.EnableEvents = True
End If
End Sub
试试这个:

Private Sub Worksheet_Change(ByVal Target As Range)
    Set Rng = Range("D11:D88")
    If Target.Count = 1 Then
        If Not Intersect(Target, Rng) Is Nothing Then
          Application.EnableEvents = False
          Target(1).Offset(0, 1).Value = Environ$("username")
          Target(1).Offset(0, 2).Value = Date
          Target(1).Offset(0, 3).Value = Time
          Application.EnableEvents = True
        End If
    End If
End Sub