Excel VBA;如何使用范围中的 Target.Offset 以便仅填充距范围中最后一个单元格的单元格偏移量?

问题描述 投票:0回答:1

当修改范围中的任何单元格时,我使用以下代码用当前日期和时间填充单元格。我希望 O 列中的单元格在修改从 A 到 K 的任何单元格时填充日期。它当前确实填充 O 列中的单元格,但它还会覆盖已修改单元格的单元格偏移量 4。我怎样才能让它只填充O? (例如,我修改 E,它填充 I 和 O)

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A:K")) Is Nothing Then

On Error Resume Next

    If Target.Value = "" Then
    
        Target.Offset(0, 4) = ""

    Else

        Target.Offset(0, 4).Value = Format(Now, "mm/dd/yyyy HH:mm:ss")

    End If

  End If
End Sub

我尝试修改参考范围,但没有改变任何东西。我尝试为每一列创建多个语句,但我没有让 else/if 语句正常工作。

excel vba range offset target
1个回答
0
投票

使用

Target
的行值而不是偏移单元格。

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A:K")) Is Nothing Then

    On Error Resume Next
    If Target.Cells.Count = 1 Then
        If Target.Value = "" Then
             Cells(Target.Row, 15).Value = ""
        Else
            Cells(Target.Row, 15).Value = Format(Now, "mm/dd/yyyy HH:mm:ss")
        End If
    End If
  End If
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.