%20automatisch%20in%20eine%20Zelle%20ein%2C%20wenn%20ich%20in%20eine%20andere%20schreibe%20und%20die%20Eingabetaste%20dr%C3%BCcke%20.png)
Antwort1
NEUE ANTWORT
Wenn Sie einen Zeitstempel haben möchten, der nicht neu berechnet wird, müssen Sie eine Technik namensKreisformeln. Dadurch kann eine Zelle grundsätzlich eine Funktion basierend auf ihrem eigenen Inhalt ausführen.
Sie müssen diese Funktion aktivieren, indem Sie zu Datei > Optionen > Formeln gehen und dann das Kontrollkästchen aktivieren Enable iterative calculation
. Ändern Sie die Anzahl der Iterationen in 1
. Drücken Sie OK und speichern Sie Ihr Blatt.
=IF(A1<>"",IF(B1="",NOW(),B1),"")
Erläuterung:
Der erste IF
ist dem in der ursprünglichen Antwort ähnlich. Er prüft, ob A1
leer ist. <>
ist der logische Operator, der bedeutet not equal to
. Der zweite IF
prüft sich selbst und wird ausgeführt, wenn Inhalt eingegeben wird A1
. Wenn B1
leer ist, gibt er das aktuelle Datum und die aktuelle Uhrzeit ein, andernfalls gibt er den vorhandenen Inhalt aus (den ursprünglichen Zeitstempel).
URSPRÜNGLICHE ANTWORT
Sie könnten dies in B1 versuchen:
=IF(ISBLANK(A1),"",NOW())
Erläuterung:
ISBLANK
ist ein logischer Test, der prüft, ob die Zielzelle eine Eingabe enthält. Er gibt entweder TRUE
oder zurück FALSE
. Der IF
Test ist so aufgebaut, dass, wenn die Zielzelle leer ist, eine leere Zeichenfolge ausgegeben wird. Wenn eine Eingabe erfolgt, A1
werden die aktuelle Uhrzeit und das aktuelle Datum ausgegeben.
Es ist zu beachten, dass sich bei jeder Neuberechnung des Blattes der ausgegebene Wert NOW()
auf die aktuelle Zeit ändert.
Verweise:
Antwort2
Es ist nicht immer ratsam, VBA für alles zu verwenden, aber dies ist ein guter Kandidat, insbesondere wenn Sie verfolgen möchten, wann eine Zeile geändert wurde und nicht nur, wann sie zum ersten Mal eingegeben wurde. Fügen Sie Folgendes in den Code für das Blatt mit der Zeitstempelspalte ein:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim intersection As Range
' Change A:A,C:E to whatever range you want to watch.
Set intersection = Application.Intersect(Target, Me.Range("A:A,C:E"))
If Not intersection Is Nothing Then
Dim r As Range
For Each r In intersection.Rows
' Change B1 to whichever column is the timestamp.
r.EntireRow.Range("B1").Value = Now
Next
End If
Application.EnableEvents = True
End Sub
In diesem Beispiel werden die Spalten A, C, D und E auf Änderungen überwacht und wenn Änderungen auftreten, werden das aktuelle Datum und die aktuelle Uhrzeit in Spalte B derselben Zeile eingefügt.