Αυτό το σύντομο σεμινάριο θα δείξει πώς να μετατρέψετε μια συμβολοσειρά σε ημερομηνία στο VBA.
Οι ημερομηνίες στο Excel αποθηκεύονται ως αριθμοί και στη συνέχεια διαμορφώνονται ώστε να εμφανίζονται ως ημερομηνία. Η ημέρα 1 στον κόσμο του Excel ήταν η 1η Ιανουαρίου 1900 (προεπιλογή των Windows) ή η 1η Ιανουαρίου 1904 (προεπιλογή Macintosh) - που σημαίνει ότι η 5η Αυγούστου 2022 είναι ημέρα 44413 από την 1η Ιανουαρίου 1900. Για να μετατρέψετε μια συμβολοσειρά σε ημερομηνία στο Excel , πρέπει πρώτα να μετατρέψουμε τη συμβολοσειρά σε έναν αριθμό και, στη συνέχεια, να τον μετατρέψουμε σε ημερομηνία.
Συνάρτηση CDate
Μπορούμε να χρησιμοποιήσουμε μια συνάρτηση που ονομάζεται CDate στο VBA για να μετατρέψουμε μια συμβολοσειρά σε ημερομηνία.
1234567 | Sub ConvertDate ()Dim dte Ως SingleDim strD As StringstrD = "05/10/2020"dte = CDate (strD)MsgBox dteΤέλος υπο |
Καθώς έχουμε δηλώσει μια αριθμητική μεταβλητή (dte ως Single), το msgbox θα επιστρέψει τον αριθμό που αναφέρεται στην ημερομηνία που έχει εισαχθεί.
Είναι σημαντικό να εισάγουμε το έτος χρησιμοποιώντας και τα 4 ψηφία του έτους (δηλαδή 2022 και όχι μόνο 20), διαφορετικά ο αριθμός που επιστρέφεται μπορεί να μην είναι ο αναμενόμενος. Το Excel δεν ερμηνεύει το έτος της ημερομηνίας - αυτό ελέγχεται από τον Πίνακα Ελέγχου του υπολογιστή μας.
Ωστόσο, εάν δηλώσουμε τις μεταβλητές ως μεταβλητή ημερομηνίας, το πλαίσιο μηνυμάτων θα επιστρέψει τον αριθμό που μετατράπηκε σε ημερομηνία.
1234567 | Sub ConvertDate ()Dim dte As DateDim strD As StringstrD = "05/10/2020"dte = CDate (strD)MsgBox dteΤέλος υπο |
Μπορούμε να κάνουμε αυτό ένα βήμα παραπέρα και να μορφοποιήσουμε την ημερομηνία στον τύπο της μορφής ημερομηνίας που θα θέλαμε να δούμε.
1234567 | Sub ConvertDate ()Dim dte As StringDim strD As StringstrD = "05/10/2020"dte = Μορφή (CDate (strD), "dd mmmm εεεε")MsgBox dteΤέλος υπο |
Σε αυτό το παράδειγμα, μετατρέπουμε τη συμβολοσειρά σε ημερομηνία και, στη συνέχεια, ξανά σε μια συμβολοσειρά!
Αν παραλείψουμε εντελώς το έτος, το Excel αναλαμβάνει το τρέχον έτος.