Wie füge ich die Funktion =now() automatisch in eine Zelle ein, wenn ich in eine andere schreibe und die Eingabetaste drücke

Wie füge ich die Funktion =now() automatisch in eine Zelle ein, wenn ich in eine andere schreibe und die Eingabetaste drücke

Ich möchte wissen, wie ich:

Automatisch soll die =now()Funktion in der Spalte B von Excel nur dann in den einzelnen Zellen (B1, B2, .. Bν) angezeigt werden, wenn ich in der Spalte A in den jeweiligen Zellen (A1, A2, .. Aν) etwas schreibe.

Bildbeschreibung hier eingeben

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 IFist dem in der ursprünglichen Antwort ähnlich. Er prüft, ob A1leer ist. <>ist der logische Operator, der bedeutet not equal to. Der zweite IFprüft sich selbst und wird ausgeführt, wenn Inhalt eingegeben wird A1. Wenn B1leer 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:

ISBLANKist ein logischer Test, der prüft, ob die Zielzelle eine Eingabe enthält. Er gibt entweder TRUEoder zurück FALSE. Der IFTest ist so aufgebaut, dass, wenn die Zielzelle leer ist, eine leere Zeichenfolge ausgegeben wird. Wenn eine Eingabe erfolgt, A1werden 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.

verwandte Informationen