Excel - 現在の日付/時刻をセルに自動的に挿入する

Excel - 現在の日付/時刻をセルに自動的に挿入する

私がやろうとしているのは、列に何かを挿入するときABまたは列に挿入/更新される現在の日付と時刻ですD。 もちろん、私はすでにそれを行っていますが、列を除外したいのでCDこれらの列に何かが挿入されたときに日付/時刻が挿入/更新されるべきではありません。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 1 Then Cells(Target.Row, "D") = Now()
End Sub

また、別のコードもありますが、一部の列を除外する方法がまだ見つかりません(日付/時刻の更新が機能する列の範囲を作成するため)

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target(1, 1).Row > 1 Then
        With Cells(Target(1, 1).Row, "D")
            .Value = Now
            .NumberFormat = "dd-mm-yyyy, hh:mm:ss"
        End With
    End If
End Sub

編集: これは私の最終コードです。

Private Sub Worksheet_Change(ByVal Target As Range)

    If (Target.Row > 1) And (Target.Column = 1) Then
       With Cells(Target.Row, "D")
            .Value = Date
            .NumberFormat = "dd-mm-yyyy"
      End With
    End If

    If (Target.Row > 1) And (Target.Column = 2) Then
      With Cells(Target.Row, "E")
            .Value = Now
            .NumberFormat = "dd-mm-yyyy, hh:mm:ss"
      End With
    End If

End Sub

答え1

行条件に加えて、列 A と B が満たされる条件を追加します。

Private Sub Worksheet_Change(ByVal Target As Range)
    If (Target.Row > 1) And ((Target.Column = 1) Or (Target.Column = 2)) Then
      'Cells(Target.Row, "D") = Now()
      With Cells(Target.Row, "D")
          .Value = Now
          .NumberFormat = "dd-mm-yyyy, hh:mm:ss"
      End With
    End If
End Sub

これで、これら 2 つの列が編集された場合にのみ日付が挿入されるようになります。

答え2

確認する必要があるもの:

  1. 行は1ではありません
  2. 列は1または2です
  3. ターゲットは単一細胞

そして多分

  1. 現在の行の列Dは空です

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row > 1 _
   And Target.Column <= 2 _
   And Target.Cells.Count = 1 Then
        Cells(Target.Row, "D") = Now()
    End If
End Sub

このコードは、1 つ以上のセルを含む範囲をコピーして貼り付ける場合には機能しません。

答え3

これを試してみてください:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Long
    r = Target.Row
    c = Target.Column
    If r > 1 And (c = 1 Or c = 2) Then
        If Cells(r, "C") = "" And Cells(r, "D") = "" Then
            Application.EnableEvents = False
                Cells(r, "D") = Now()
            Application.EnableEvents = True
        End If
    End If
End Sub

これにより、必要なすべての条件がテストされます。

関連情報