Excelmacros:打印数据发生变化的date

我试图让我的macros打印date,当我的数据更新列H我也需要它打印在更新的同一行,所以假设我更新A2,我希望date打印在H2等

我有这个:

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> Range("H" & Target.Row).Address Then Range("H" & Target.Row).Value = Date End If End Sub 

出于某种原因,当我最终改变了某些东西并敲响了input时,我得到了一个小小的延迟,但是这个date永远不会以H打印结束。不知道我在这里做错了什么。

你需要:

 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> Range("H" & Target.Row).Address Then Application.EnableEvents = False Range("H" & Target.Row).Value = Date Application.EnableEvents = True End If End Sub 
 Private Sub Worksheet_Change(ByVal Target As Range) Const DATE_COL As Long = 8 Dim c As Range 'don't trigger if user (eg) deletes a whole column! Debug.Print Target.Cells.Count If Target.Cells.Count > 1000 Then Exit Sub On Error GoTo haveError Application.EnableEvents = False For Each c In Target.Cells If c.Column <> DATE_COL Then c.EntireRow.Cells(DATE_COL).Value = Date End If Next c haveError: Application.EnableEvents = True End Sub