Ich versuche, etwas in eine Spalte einzufügen A
oder B
das aktuelle Datum und die aktuelle Uhrzeit in die Spalte einzufügen/aktualisieren D
. Das habe ich natürlich schon gemacht, aber ich möchte Spalten ausschließen C
, und D
das bedeutet, wenn etwas in diese Spalten eingefügt wird, sollen Datum/Uhrzeit nicht eingefügt/aktualisiert werden.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 1 Then Cells(Target.Row, "D") = Now()
End Sub
Ich habe auch einen anderen Code, kann aber immer noch keine Möglichkeit finden, einige Spalten auszuschließen (um einen Spaltenbereich zu erstellen, bei dem die Aktualisierung von Datum/Uhrzeit funktionieren sollte).
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
BEARBEITEN: Dies ist mein endgültiger Code.
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
Antwort1
Fügen Sie eine Bedingung hinzu, die zusätzlich zur Zeilenbedingung für die Spalten A und B erfüllt werden muss:
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
Jetzt wird das Datum nur eingefügt, wenn diese beiden Spalten bearbeitet werden.
Antwort2
Sie müssen Folgendes überprüfen:
- Die Zeile ist nicht 1
- Die Spalte ist 1 oder 2
- Ziel ist die einzelne Zelle
und vielleicht
- Spalte D in der aktuellen Zeile ist leer
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
Dieser Code funktioniert NICHT, wenn Sie einen Bereich mit mehr als einer Zelle kopieren und einfügen.
Antwort3
Probieren Sie Folgendes aus:
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
Dadurch sollten alle erforderlichen Bedingungen getestet werden.