Αυτό το σεμινάριο θα δείξει πώς να αποκτήσετε τη σημερινή ημερομηνία στο VBA.
Υπάρχουν δύο τρόποι για να αποκτήσετε τη σημερινή ημερομηνία στον κώδικα VBA, συγκεκριμένα χρησιμοποιώντας το VBA Ημερομηνία() λειτουργία ή το VBA Τώρα() λειτουργίες.
Συνάρτηση ημερομηνίας ()
ο Ημερομηνία() η λειτουργία μας δίνει τη δυνατότητα να αντιστοιχίσουμε τη σημερινή ημερομηνία σε μια μεταβλητή και στη συνέχεια να εμφανίσουμε την ημερομηνία στο άμεσο παράθυρο του VBE Editor για να δούμε τη σημερινή ημερομηνία.
123 | Dim dtΣήμερα ως ΗμερομηνίαdtToday = Ημερομηνία ()Debug.Print dtToday |
Εναλλακτικά, μπορούμε να εμφανίσουμε την ημερομηνία σε ένα πλαίσιο μηνυμάτων.
12345 | Sub TestDateDim dtΣήμερα ως ΗμερομηνίαdtToday = Ημερομηνία ()Msgbox "Η σημερινή ημερομηνία είναι" & dtTodayΤέλος υπο |
Τώρα () Λειτουργία
ο Τώρα() Η συνάρτηση λειτουργεί με τον ίδιο τρόπο όπως η συνάρτηση ημερομηνίας, αλλά περιλαμβάνει την ώρα.
12345 | Sub TestDate ()Dim dtΣήμερα ως ημερομηνίαdtToday = Τώρα ()MsgBox "Η σημερινή ημερομηνία είναι" & dtTodayΤέλος υπο |
Μορφοποίηση ημερομηνιών με VBA
Και στα δύο Ημερομηνία() και το Τώρα() λειτουργίες, η ημερομηνία διαμορφώνεται σε ένα προεπιλεγμένο στυλ όπως καθορίζεται από τις ρυθμίσεις στον υπολογιστή μας. Μπορούμε να προσαρμόσουμε αυτήν τη μορφοποίηση χρησιμοποιώντας το VBA Μορφή λειτουργία. Καθώς η συνάρτηση μορφοποίησης θα επιστρέψει μια συμβολοσειρά, πρέπει να δηλώσουμε a ΣΕΙΡΑ μεταβλητή και όχι α ΗΜΕΡΟΜΗΝΙΑ μεταβλητός.
12345 | Sub TestDate ()Dim dtToday As StringdtToday = Μορφή (Ημερομηνία, "ημ mmmm εεεε")MsgBox "Η σημερινή ημερομηνία είναι" & dtTodayΤέλος υπο |
Μπορούμε επίσης να διαμορφώσουμε το Τώρα() λειτουργία για να συμπεριλάβετε το τμήμα χρόνου σε προσαρμοσμένη μορφή.
12345 | Sub FormatNow ()Dim dtToday As StringdtToday = Μορφή (Τώρα (), "dd mmmm yy hh: mm: ss am/pm")MsgBox dtTodayΤέλος υπο |
Σύγκριση 2 ημερομηνιών με VBA
Μπορούμε επίσης να χρησιμοποιήσουμε τη συνάρτηση Ημερομηνία για να συγκρίνουμε τη σημερινή ημερομηνία με μια διαφορετική ημερομηνία - ίσως θελήσουμε να υπολογίσουμε πόσες ημέρες υπάρχουν μέχρι ένα συμβάν! Μπορούμε να το κάνουμε αυτό χρησιμοποιώντας το VBA DateDiff () συνάρτηση που θα επιστρέψει έναν αριθμό. Μπορούμε λοιπόν να δηλώσουμε έναΑΚΕΡΑΙΟΣ ΑΡΙΘΜΟΣ μεταβλητή για να αποθηκεύσετε την επιστρεφόμενη τιμή.
123456789 | Sub TestDateDiff ()Dim dtΣήμερα ως ημερομηνίαDim dtSomeDay As DateDim iDays As IntegerdtToday = ΗμερομηνίαdtSomeDay = "05/06/2021"iDays = DateDiff ("d", dtToday, dtSomeDay)MsgBox "Υπάρχουν" & iDays & "ημέρες μεταξύ των 2 ημερομηνιών"Τέλος υπο |
Καθώς οι Ημερομηνίες αποθηκεύονται ως αριθμοί, θα μπορούσαμε επίσης να μείον τη δεύτερη ημερομηνία από την πρώτη για να λάβουμε την ίδια απάντηση.
1 | iDays = dtToday - dtSomeDay |