我有一个代码,每当编辑或删除其内容时,都会向所选单元格添加注释(类似于"在 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