0
我有一个代码,如果在同一行的单元格中进行任何更改在列F:Excel VBA更新单元格中的日期如果在同一行中的单元格范围内有任何更改
Private Sub Worksheet_Change(ByVal Target As Range)
' Code to put the date of the latest update following a change in the corresponding cell in column F
Dim WorkRng As Range
Dim rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("F:F"), Target)
xOffsetColumn = -2 'The date is put 2 columns to the left of column F
If Not WorkRng Is Nothing Then
Application.EnableEvents = False
For Each rng In WorkRng
If Not VBA.IsEmpty(rng.Value) Then
rng.Offset(0, xOffsetColumn).Value = Now
rng.Offset(0, xOffsetColumn).NumberFormat = "dd/mm/yyyy"
Else
rng.Offset(0, xOffsetColumn).ClearContents
End If
Next
Application.EnableEvents = True
End If
End Sub
现在我需要去适应这个代码,以便日期在列d的细胞更新,如果有变化的细胞由同一行中列F到K.
我有很少的VBA知识,并会感谢任何帮助适应代码。
'设置WorkRng =相交(Application.ActiveSheet.Range( “F:K”),目标)' –
那并不行不通:问题在于抵消:如果我在F列中更改了某些内容,那么日期将放在D列(日期总是应该是的地方)。但是,如果我将列H中的内容更改为K,则日期将放在左侧的2列中。 – Antoon
然后,您必须根据您的Target.Column在上面的代码中更改'xOffsetColumn'。 – Ralph