首页 > 解决方案 > 将时间戳和名称添加到修改的行

问题描述

我想在每个修改的行中创建一个带有时间和名称戳的新 Excel 工作表。

我正在使用这段代码:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A3:P9999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
With Target
    Cells(ActiveCell.Row() - 1, 18) = Date
    Cells(ActiveCell.Row() - 1, 17) = Environ("username")
End With
Application.EnableEvents = True
End Sub

在不添加行的-1情况下,Cells我在活动(修改)单元格下方获得了邮票一行。

我添加了-1,但现在当我按下delete按钮清除该单元格时,我在活动单元格上方标记了一行。

标签: excelvbatimestamp

解决方案


使用Target(更改的单元格),而不是ActiveCell. 完成单元格编辑后,默认情况下,您将在下面的单元格中结束,因此该单元格将处于活动状态。

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("A3:P9999")) Is Nothing Then Exit Sub

Application.EnableEvents = False

With Target
    Cells(.Row, 18) = Date
    Cells(.Row, 17) = Environ("username")
End With

Application.EnableEvents = True

End Sub

推荐阅读