Ημερομηνία VBA | Πώς να χρησιμοποιήσετε τη λειτουργία Excel VBA IsDate;
Συνάρτηση Excel VBA IsDate
Το IsDate είναι η συνάρτηση VBA που ελέγχει εάν η δεδομένη τιμή είναι η ημερομηνία ή όχι. Εάν η παρεχόμενη τιμή αναφοράς ή το εύρος τιμών είναι τιμή ημερομηνίας, τότε θα έχουμε το αποτέλεσμα ως "ΑΛΗΘΟΣ", εάν η τιμή δεν είναι τιμή ημερομηνίας, τότε θα έχουμε το αποτέλεσμα ως "ΛΑΘΟΣ". Έτσι, το αποτέλεσμα είναι η τιμή BOOLEAN, δηλαδή είτε ΑΛΗΘΗ ή ΛΑΘΟΣ.
Παρακάτω είναι η σύνταξη της συνάρτησης IsDate.
Η έκφραση δεν είναι τίποτα άλλο από την αξία που προσπαθούμε να δοκιμάσουμε αν είναι η ημερομηνία ή όχι.
Πώς να χρησιμοποιήσετε τη λειτουργία VBA IsDate;
Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA IsDate Excel εδώ - Πρότυπο VBA IsDate ExcelΘα ελέγξουμε αν η τιμή "5.01.19" είναι τιμή ημερομηνίας ή όχι.
Για αυτό πρώτα ξεκινήστε τη διαδικασία μακροεντολής excel.
Κώδικας:
Sub IsDate_Example1 () End Sub
Ορίστε τη μεταβλητή για να αποθηκεύσετε την τιμή ημερομηνίας και δεδομένου ότι η τιμή θα είναι τιμή ημερομηνίας αντιστοιχίστε τον τύπο δεδομένων ως "Ημερομηνία" μόνο.
Κώδικας:
Sub IsDate_Example1 () Dim MyDate ως ημερομηνία λήξης Υπο
Τώρα αντιστοιχίστε την τιμή "5.1.19" στη μεταβλητή "MyDate".
Κώδικας:
Sub IsDate_Example1 () Dim MyDate ως ημερομηνία MyDate = "5.1.19" End Sub
Ανοίξτε το πλαίσιο μηνυμάτων στο VBA τώρα
Κώδικας:
Sub IsDate_Example1 () Dim MyDate ως ημερομηνία MyDate = "5.1.19" MsgBox (End Sub
Σε αυτό το πλαίσιο μηνύματος, θα ελέγξουμε εάν η παρεχόμενη τιμή ημερομηνίας στη μεταβλητή "MyDate" είναι η ημερομηνία ή όχι χρησιμοποιώντας τη συνάρτηση "IsDate". Αρχικά, ανοίξτε τη λειτουργία "IsDate".
Κώδικας:
Sub IsDate_Example1 () Dim MyDate As Date MyDate = "5.1.19" MsgBox IsDate (End Sub
Η έκφραση είναι η τιμή που δοκιμάζουμε για να διαπιστώσουμε εάν είναι Ημερομηνία ή όχι. Εφόσον έχουμε ήδη αποθηκεύσει την τιμή στη μεταβλητή "MyDate" παρέχετε μόνο το όνομα της μεταβλητής.
Κώδικας:
Sub IsDate_Example1 () Dim MyDate ως ημερομηνία MyDate = "5.1.19" MsgBox IsDate (MyDate) End Sub
Εντάξει, τώρα εκτελέστε τον κωδικό και δείτε τι λαμβάνουμε στο πλαίσιο μηνυμάτων.
Ουάου!!! Το αποτέλεσμα είναι αληθινό .
Πρέπει να αναρωτιέστε πώς αναγνώρισε την τιμή "5.1.19" ως ημερομηνία.
Ο λόγος για τον οποίο επέστρεψε το αποτέλεσμα ως Αληθινό γιατί όταν κοιτάξετε τη δεδομένη τιμή "5.1.19" είναι η σύντομη μορφή της ημερομηνίας "05.01.2019", έτσι το excel είναι αρκετά λαμπρό για να το αναγνωρίσει ως ημερομηνία, έτσι το αποτέλεσμα είναι αλήθεια.
Τώρα έρχεται το δύσκολο πράγμα, για την ίδια αξία αυτό που θα κάνουμε είναι να αλλάξουμε τη σύντομη μορφή του έτους από 19 έως 2019.
Κώδικας:
Sub IsDate_Example1 () Dim MyDate As String MyDate = "5.1.2019" MsgBox IsDate (MyDate) End Sub
Τώρα εκτελέστε τον κωδικό και δείτε το αποτέλεσμα.
Αυτή τη φορά επέστρεψε το αποτέλεσμα ως FALSE επειδή το τμήμα "ημέρα και μήνας" της ημερομηνίας είναι σε σύντομη μορφή, αλλά το μέρος του έτους είναι σε πλήρη μορφή "YYYY", οπότε το ISDATE δεν μπορεί να αναγνωρίσει ότι έχει ημερομηνία, επομένως το αποτέλεσμα είναι FALSE.
Τώρα, δείτε τον παρακάτω κώδικα.
Κώδικας:
Sub IsDate_Example1 () Dim MyDate As String MyDate = "05.01.2019" MsgBox IsDate (MyDate) End Sub
Έχω αναφέρει τη μορφή πλήρους ημέρας και ολόκληρου μήνα χρησιμοποιώντας το 0, ας τρέξουμε τον κώδικα και να δούμε το αποτέλεσμα της συνάρτησης IsDate.
Αυτή τη φορά πάμε πήραμε το αποτέλεσμα ως FALSE .
Τώρα αλλάξτε τον κωδικό ως εξής.
Κώδικας:
Sub IsDate_Example1 () Dim MyDate As String MyDate = "05/01/2019" MsgBox IsDate (MyDate) End Sub
Αντί για την τελεία (.) Ως διαχωριστικό, έχουμε εισαγάγει την κάθετο (/) ως διαχωριστικό. Τώρα εκτελέστε τον κωδικό και δείτε το αποτέλεσμα.
Αυτή τη φορά έχουμε το αποτέλεσμα ως Αληθινό .
Αυτός είναι ο λόγος που σας έχω πει στην αρχή του άρθρου ότι το "Date" είναι ένα ευαίσθητο πράγμα.
Τώρα αυτό που θα κάνω είναι να συγχωνεύσω την ημερομηνία και την ώρα μαζί.
Κώδικας:
Sub IsDate_Example1 () Dim MyDate As String MyDate = "05/01/2019 15:26:24" MsgBox IsDate (MyDate) End Sub
Αυτό που έχω προσθέσει παραπάνω είναι το χρονικό τμήμα του "15:26:24" μπροστά από την ημερομηνία. Τώρα εκτελέστε τον κωδικό και δείτε το αποτέλεσμα.
Αυτή τη φορά πήραμε και το αποτέλεσμα ως Αληθινό, επειδή η DATE & TIME στο excel είναι τα ίδια πράγματα και αποθηκεύονται με σειριακούς αριθμούς. Ο ακέραιος αριθμός αντιπροσωπεύει το τμήμα ημερομηνίας και τα δεκαδικά ψηφία αντιπροσωπεύουν το τμήμα ώρας.
Πράγματα που πρέπει να θυμάστε εδώ
- Το IsDate επιστρέφει το αποτέλεσμα τύπου Boolean, δηλαδή είτε TRUE είτε FALSE.
- Το IsDate είναι διαθέσιμο μόνο ως λειτουργία VBA.
- Μόνο οι έγκυρες μορφοποιημένες ημερομηνίες αντιμετωπίζονται ως ημερομηνία ή αλλιώς θα αντιμετωπίζονται ως τιμές κειμένου και θα επιστρέφουν το αποτέλεσμα ως FALSE.