Excel VBA时间戳不更新

我有一个工作表,我正在build设,将跟踪我们的传入预告片,并把这些信息在仪表板上。 我有VBA安装程序,当用户将列A中的单元格从这里更改为closures时,它会将该行复制到下一个将保留预告片历史的工作表。

我的问题是VBA的时间戳完成的页面上没有更新时复制行。 我知道vba的作品,因为我可以更改完成的工作表上的拖车编号,它会触发vba和时间戳会出现。 但是我需要时间戳来显示从仪表板表复制行。

我是否错过了需要打开的东西,这将有助于触发时间戳?

谢谢

编辑 – 对不起,我没有添加代码。 这是我已经完成的工作表上的时间戳

Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("C2:C10000")) Is Nothing Then Exit Sub If Target.Count > 1 Then Exit Sub If Target = "" Then Exit Sub With Application .ScreenUpdating = False .EnableEvents = False With Cells(Target.Row, 10) .Value = Now .NumberFormat = "mm/dd/yyyy hh:mm:ss" End With .EnableEvents = True .ScreenUpdating = True End With End Sub 

我的仪表板页面的代码将复制该行

 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A2:A5000")) Is Nothing Then Exit Sub If Target.Count > 1 Then Exit Sub If Target = "" Then Exit Sub Dim NR As Long With Application .EnableEvents = False .ScreenUpdating = False Select Case Target.Value Case "Closed" Range("A" & Target.Row & ":z" & Target.Row).Copy _ Worksheets("Completed").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) Target.EntireRow.Delete Shift:=xlUp End Select .EnableEvents = True .ScreenUpdating = True End With End Sub 

这是我提出的解决scheme。 我不明白你为什么需要有两个工作表函数。 将此代码放置在仪表板工作表中,它将复制并粘贴到“已完成”工作表。 我添加了一些代码。 首先,error handling,如果有错误,并且.EnableEvents = False是执行的最后一行,那么随后的事件将不会被触发,您将不​​会对自己感到满意。 我还添加了一些End If这似乎是从您的代码中缺less。 我在代码中添加了一些注释,以便您了解我所做的更改。

 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ErrorHandler If Intersect(Target, Range("A2:A5000")) Is Nothing _ Then Exit Sub If Target.Count > 1 Then Exit Sub End If If Target = "" Then Exit Sub End If Dim NR As Long With Application .EnableEvents = False .ScreenUpdating = False Select Case Target.Value Case "Closed" Range("A" & Target.Row & ":z" & Target.Row).Copy _ Worksheets("Completed").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) 'get the last cell used. Set lastCell = Worksheets("Completed").Range("A" & Rows.Count).End(xlUp) 'new line of code lastCell.Offset(0, 10).Value = Now lastCell.Offset(0, 10).NumberFormat = "mm/dd/yyyy hh:mm:ss" Target.EntireRow.Delete Shift:=xlUp End Select .EnableEvents = True .ScreenUpdating = True End With Exit Sub ErrorHandler: Application.EnableEvents = True Application.ScreenUpdating = True MsgBox "You have encountered an error. Please notify admin" End Sub