Η εισαγωγή ώρας ημερομηνίας στο Excel χρησιμοποιώντας VBA είναι τόσο απλή όσο η εγγραφή ενός τύπου σε ένα κελί.
Ο κωδικός χρονικής σήμανσης VBA είναι:
Εύρος ("A1"). Τιμή = Μορφή (Τώρα, "mm/dd/yyyy HH: mm: ss")Αυτός ο κωδικός θα εμφανίσει την τρέχουσα ημερομηνία και ώρα στο κελί A1. Και ναι, αυτό είναι. έγινε.
Η συνάρτηση "Τώρα" επιστρέφει την τρέχουσα ημερομηνία και ώρα και η λειτουργία "Μορφοποίηση" μορφοποιεί την έξοδο σε μορφή "mm/dd/yyyy HH: mm: ss".
Εμφάνιση ημερομηνίας και ώρας κάθε φορά που πραγματοποιείται αλλαγή χρησιμοποιώντας το VBA.
Ας υποθέσουμε ότι έχετε ετοιμάσει ένα φύλλο. Σε αυτό το φύλλο, θέλετε να εμφανίζεται ο χρόνος στη στήλη Β κάθε φορά που κάποιος κάνει μια καταχώριση Στήλη Α.
Τώρα χρειαζόμαστε έναν κωδικό χρονικής σήμανσης VBA που εκτελείται κάθε φορά που πραγματοποιείται αλλαγή στη στήλη Α.
Ο παρακάτω κώδικας κάνει τη δουλειά εύκολα.
Εκτέλεση μακροεντολής όταν πραγματοποιείται μια αλλαγή (Διαχείριση συμβάντων αλλαγής φύλλου εργασίας)
Private Sub Worksheet_Change (ByVal Target As Range) If Not Intersect (Target, Range ("A: A")) is something thenOn Error Resume Next If Target.Value = "" ThenTarget.Offset (0, 1) = "" Other Target .Offset (0, 1) .Αξία = Μορφή (Τώρα, "mm/dd/yyyy HH: mm: ss") End If End If End Sub
Για να εκτελέσετε αυτόν τον κώδικα, ανοίξτε το VBA και κάντε διπλό κλικ στο φύλλο στο παράθυρο του έργου στο οποίο θέλετε να εμφανιστεί η χρονική σήμανση.
Τώρα πρέπει να χρησιμοποιήσουμε τον χειριστή συμβάντων VBA αφού θέλουμε να τρέχουμε τον κώδικα μας για να εκτελείται κάθε φορά που γίνεται αλλαγή.
Από το αναπτυσσόμενο μενού πάνω από τον κωδικό σας, επιλέξτε Φύλλο εργασίας.
Τώρα δίπλα στο αναπτυσσόμενο φύλλο εργασίας, βλέπετε ένα άλλο αναπτυσσόμενο μενού. Περιέχει πολλούς χειριστές εκδηλώσεων. Προς το παρόν, επιλέξτε "αλλαγή".
Τώρα αντιγράψτε τον παραπάνω κώδικα εδώ.
Και γίνεται. Επιστρέψτε στο φύλλο σας και ελέγξτε το.
Επεξήγηση κώδικα:
- Ο κωδικός γράφεται στο φύλλο 1 κάνοντας διπλό κλικ σε αυτό. Σημαίνει ότι ο κωδικός σας ανήκει μόνο σε αυτό το φύλλο.
- Χρησιμοποιήσαμε τον χειριστή "Αλλαγή" του "Φύλλο εργασίας" για να ενεργοποιήσουμε τον κώδικα VBA.
-
Private Sub Worksheet_Change (ByVal Target As Range)
Αυτό είναι το σταθερό και προεπιλεγμένο όνομα υπορουτίνας ενός χειριστή αλλαγής συμβάντων.
- Θέλουμε ο κωδικός μας να εκτελείται η αλλαγή γίνεται μόνο στη στήλη Α.
-
Εάν δεν διασταυρώνεται (στόχος, εύρος ("A: A")) δεν είναι τίποτα τότε
Αυτή η γραμμή ελέγχει εάν το αλλαγμένο κελί βρίσκεται στη στήλη Α ή όχι.
- Τώρα, εάν η παραπάνω γραμμή επιστρέψει True, τότε αυτές οι γραμμές εκτελούνται
On Error Resume Next If Target.Value = "" ThenTarget.Offset (0, 1) = "" ElseTarget.Offset (0, 1). Value = Format (Now, "mm/dd/yyyy HH: mm: ss")
Η πρώτη γραμμή αγνοεί το σφάλμα pop και εκτελεί αυτές τις δύο γραμμές. Εάν παραλείψετε το On Σφάλμα Συνέχιση Επόμενο θα δείτε σφάλμα να εμφανίζεται όταν διαγράφετε μια τιμή στη στήλη Α.
Αν Target.Value = "" Τότε
:- Αυτή η γραμμή ελέγχει εάν ένα κελί στη στήλη Α είναι κενό. Αν ναι τότε
Target.Offset (0, 1) = ""
:- Αυτή η γραμμή διαγράφει την παρακείμενη τιμή κελιού.
Και αν Λάθος
Else Target.Offset (0, 1). Τιμή = Μορφή (Τώρα, "mm/dd/yyyy HH: mm: ss")
:- Αυτή η γραμμή εισάγει την τρέχουσα ώρα και ημερομηνία δίπλα στη στήλη Α.
- Και οι τρεις τελευταίες γραμμές απλά κλείνουν το αντίστοιχο μπλοκ τους. Και έγινε. Τώρα έχετε ένα φύλλο που δίνει έναν ακριβή χρόνο αλλαγής που έγινε σε ένα κελί της στήλης Α.
Mayσως έχετε παρατηρήσει ότι υπάρχουν αρκετοί χειριστές συμβάντων στην αναπτυσσόμενη λίστα. Παίξτε γύρω τους. Προσπαθήστε να καταλάβετε τι λειτουργεί κάθε διαχειριστής συμβάντων. Και αν έχετε κάποια δυσκολία, γράψτε το στην ενότητα σχολίων.
Εισαγωγή σφραγίδας ημερομηνίας με VBA