我有一个代码,可以在编辑所选单元格或删除其内容时为所选单元格添加注释(例如"在1/19/18下午3:00编辑/删除")。我通过向下移动选择来禁用返回键,因为注释被添加到新选择中(在单元格下方)。但是,如果您编辑单元格并按下任何方向键或选项卡,或者甚至用光标选择任何其他单元格,则会在那里添加注释。
有没有办法将其限制为修改后的原始单元格?
答案 0 :(得分:1)
正如Vacip所指出的,Target
为您提供了已更改的单元格,然后您可以使用此OffSet
参数将注释放在您需要的位置。
例如,Target.Offset(1, 0).Value = "Foo"
会将“Foo”放在已更改的单元格的一行中,而Target.Offset(0, 1).Value = "Bar"
会将“Bar”放在右侧的一列中。
请务必在过程顶部添加Application.EnableEvents = False
,在底部添加Application.EnableEvents = True
。这将阻止该过程再次激活代码(这可能会导致几乎无限循环,直到它用完列。
答案 1 :(得分:1)
以下内容应该这样做:
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