将worksheet_change代码应用于原始选择



我有一个代码,每当编辑或删除其内容时,都会向所选单元格添加注释(类似于"在 18 年 1 月 19 日下午 3:00 编辑/删除"(。我禁用了返回键向下移动选择,因为注释被添加到新选择(单元格下方(。但是,如果您编辑单元格并按任何方向键或选项卡,甚至使用光标选择任何其他单元格,注释将添加到该位置。

有没有办法将其限制为修改的原始单元格?

正如 Vacip 所指出的,Target为您提供已更改的单元格,然后您可以使用 this 的 OffSet 参数将注释放在需要的位置。

例如,Target.Offset(1, 0).Value = "Foo"会将"Foo"放在更改的单元格的一行中,而Target.Offset(0, 1).Value = "Bar"会将"Bar"放在右侧的一列中。

请务必在过程顶部添加Application.EnableEvents = False,在底部添加Application.EnableEvents = True。这将阻止该过程再次激活代码(这可能会导致几乎无限的循环,直到它用完列。

像下面这样的事情应该可以做到:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    'enable events to false to restrict the code to one row below and not an infinite loop
    Target.Offset(1, 0).Value = "Edited/Deleted on " & Now()
    'add the Edited/Deleted text and date and time
    Application.EnableEvents = True
    're-enable events after doing what you wanted.
End Sub

最新更新