Das Einfügen der Datumszeit in Excel mit VBA ist so einfach wie das Schreiben einer Formel in eine Zelle.
Der VBA-Zeitstempelcode lautet:
Bereich(„A1“).Wert = Format(Jetzt "mm/tt/jjjj HH:mm:ss")Dieser Code zeigt das aktuelle Datum und die aktuelle Uhrzeit in Zelle A1 an. Und ja, das ist es. es ist fertig.
Die Funktion „Jetzt“ gibt das aktuelle Datum und die aktuelle Uhrzeit zurück und die Funktion „Format“ formatiert die Ausgabe in das Format „mm/tt/jjjj HH:mm:ss“.
Zeigen Sie Datum und Uhrzeit an, wenn eine Änderung mit VBA vorgenommen wird.
Nehmen wir an, Sie haben ein Blatt vorbereitet. In diesem Blatt möchten Sie, dass die Zeit in Spalte B angezeigt wird, wenn jemand einen Eintrag in Spalte A vornimmt.
Jetzt benötigen wir einen VBA-Zeitstempelcode, der jedes Mal ausgeführt wird, wenn eine Änderung in Spalte A vorgenommen wird.
Mit dem folgenden Code wird die Arbeit leicht erledigt.
Makro ausführen, wenn eine Änderung vorgenommen wird (Worksheet Change Event Handler)
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A:A")) Is Nothing ThenOn Error Resume Next If Target.Value = "" ThenTarget.Offset(0, 1) = "" Else Target .Offset(0, 1).Value = Format(Now, "mm/dd/yyyy HH:mm:ss") End If End If End Sub
Um diesen Code auszuführen, öffnen Sie VBA und doppelklicken Sie auf das Blatt im Projektfenster, auf dem Sie den Zeitstempel anzeigen möchten.
Jetzt müssen wir den VBA-Ereignishandler verwenden, da wir unseren Code ausführen möchten, um jedes Mal ausgeführt zu werden, wenn eine Änderung vorgenommen wird.
Wählen Sie im Dropdown-Menü über Ihrem Code Arbeitsblatt aus.
Nun sehen Sie neben dem Dropdown-Menü des Arbeitsblatts ein weiteres Dropdown-Menü. Es enthält viele Event-Handler. Wählen Sie vorerst „Ändern“.
Kopieren Sie nun den obigen Code hier.
Und es ist vollbracht. Kehren Sie zu Ihrem Blatt zurück und überprüfen Sie es.
Code-Erklärung:
- Der Code wird auf Sheet1 geschrieben, indem man darauf doppelklickt. Das bedeutet, dass Ihr Code nur zu diesem Blatt gehört.
- Wir haben den Ereignishandler "Change" von "Worksheet" verwendet, um unseren VBA-Code auszulösen.
-
Private Sub Worksheet_Change (ByVal Target As Range)
Dies ist der feste und standardmäßige Subroutinenname eines Change Event-Handlers.
- Wir möchten, dass unser Code nur in Spalte A Änderungen ausführt.
-
If Not Intersect(Target, Range("A:A")) ist nichts, dann
Diese Zeile prüft, ob sich die geänderte Zelle in Spalte A befindet oder nicht.
- Wenn die obige Zeile nun True zurückgibt, werden diese Zeilen ausgeführt
Bei Fehler Fortsetzen als nächstes If Target.Value = "" ThenTarget.Offset(0, 1) = "" ElseTarget.Offset(0, 1).Value = Format(Now, "mm/dd/yyyy HH:mm:ss")
Die erste Zeile ignoriert Fehler-Pop und führt diese beiden Zeilen aus. Wenn Sie On weglassen Fehler fortsetzen Weiter Wenn Sie einen Wert in Spalte A löschen, wird ein Fehler angezeigt.
If Target.Value = "" Then
:- Diese Zeile prüft, ob eine Zelle in Spalte A leer ist. Wenn ja dann
Ziel.Offset(0, 1) = ""
:- Diese Zeile löscht den benachbarten Zellenwert.
Und wenn falsch
Sonst Target.Offset(0, 1).Value = Format(Jetzt "mm/dd/yyyy HH:mm:ss")
:- Diese Zeile gibt die aktuelle Uhrzeit und das aktuelle Datum in die benachbarte Spalte A ein.
- Und die letzten drei Zeilen schließen nur ihren jeweiligen Block. Und es ist vollbracht. Jetzt haben Sie ein Blatt, das den genauen Zeitpunkt der Änderung in einer Zelle der Spalte A angibt.
Sie haben vielleicht bemerkt, dass die Dropdown-Liste mehrere Ereignishandler enthält. Spielen Sie um sie herum. Versuchen Sie herauszufinden, was jeder Event-Handler funktioniert. Und wenn Sie Schwierigkeiten haben, schreiben Sie es in den Kommentarbereich.
Datum/Zeit-Stempel mit VBA einfügen