我需要一些关于此代码的帮助,因为它无法正常工作。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
For Each Cell In Target
With Cell
If .Column = Range("W:W").Column Then
Cells(.Row, "AC").Value = Int(Now)
End If
End With
Next Cell
End Sub
每次填写“W”列中的单元格时,我都想在“AC”列中获取自动静态日期戳,我想从行“19”开始。 试图使用
If .Column = Range("W19").End(xldown) Then
但它不起作用。
我刚刚开始使用macro和vba,如果你可以向我解释任何解决方案,它会对我有所帮助。
谢谢
答案 0 :(得分:0)
如果您要写入工作表,请务必关闭事件,以便Worksheet_Change事件宏不会尝试在其自身上运行。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("W:W")) Is Nothing Then
On Error GoTo bm_Safe_Exit
Application.EnableEvents = False
Dim rng As Range
For Each rng In Intersect(Target, Columns("W:W"))
If rng.Row > 18 Then _
rng.Offset(0, 6) = Date 'or Now for datetime
Next rng
End If
bm_Safe_Exit:
Application.EnableEvents = True
End Sub
这应该处理对列W的多次更改,就像块范围粘贴一样。