我发现了这个VBA代码,该代码目前用日期/时间填充列E和F,并在检测到范围A2:D50中的变化时仅用日期/时间更新列F。它工作得很漂亮,感谢作者。 我想做的是:
我试图修改代码并可以填入col E,但是无法更新col F。
Private Sub Worksheet_Change(ByVal Target As Range)
'Timestamp Data
' TeachExcel.com - Original Author
Dim myTableRange As Range
Dim myDateTimeRange As Range
Dim myUpdatedRange As Range
'Your data table range
Set myTableRange = Range("A2:D50")
'Check if the changed cell is in the data tabe or not.
If Intersect(Target, myTableRange) Is Nothing Then Exit Sub
'Stop events from running
Application.EnableEvents = False
'Column for the date/time
Set myDateTimeRange = Range("E" & Target.Row)
'Column for last updated date/time
Set myUpdatedRange = Range("F" & Target.Row)
'Determine if the input date/time should change
If myDateTimeRange.Value = "" Then
myDateTimeRange.Value = Now
End If
'Update the updated date/time value
myUpdatedRange.Value = Now
'Turn events back on
Application.EnableEvents = True
End Sub
答案 0 :(得分:1)
将myTableRange
设置为B2:B50
。然后将您的IF
语句更改为:If Not Intersect(Target, myTableRange) Is Nothing Then
。如果Target
在范围内,请执行步骤。如果Target
不在该范围内,请在myTableRange
中将D2:D50
重置为Else
。然后检查您的Target
是否在该范围内。如果是这样,请执行您的步骤