如何在Excel中使用受保护的列和VBA自动填充列删除行

时间:2018-08-09 16:04:40

标签: excel-vba

我需要有关Excel电子表格的帮助。这是我需要做的事情。

需要保护4列。 1将包含谁进入该行。 1将包含创建日期的行。 1将包含谁最后更新了该行。并且1将包含上次更新的日期行。

为此,我已经有一个简单但有效的代码。

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Row = 1 Then Exit Sub
  Application.EnableEvents = False
  Cells(Target.Row, "AD").Value = Environ$("UserName")
  Cells(Target.Row, "AE").Value = Date      
  If IsEmpty(Cells(Target.Row, "AG")) Then
      Cells(Target.Row, "AG").Value = Environ$("UserName")
      Cells(Target.Row, "AF").Value = Date
  End If      
  Application.EnableEvents = True
End Sub

现在问题是删除一行。我在谷歌搜索时发现了VBA代码,但是当它删除行时,上面的代码就会执行并用数据填充4列。

有人可以给我看一个代码来处理删除吗?

谢谢

Rick ..

1 个答案:

答案 0 :(得分:0)

就像乔希(Josh)在评论中提到的那样,布尔值将起作用。但是,您可能应该使用内置的事件“阻止程序”。

在删除“行禁用”事件之前,请确保未触发Worksheet_Change。完成所有更改后,再次启用事件。

Application.EnableEvents = False
'Delete stuff
Application.EnableEvents = True