Ημερομηνία μορφής VBA - Πώς να αλλάξετε τη μορφή ημερομηνίας στον κώδικα VBA;

Πίνακας περιεχομένων

Ημερομηνία μορφής Excel VBA

Για να μορφοποιήσουμε μια ημερομηνία στο VBA χρησιμοποιούμε την ίδια την ενσωματωμένη συνάρτηση FORMAT, παίρνει την είσοδο ως μορφή ημερομηνίας και επιστρέφει την επιθυμητή μορφή που απαιτείται, τα ορίσματα που απαιτούνται για αυτήν τη συνάρτηση είναι η ίδια η έκφραση και ο τύπος μορφής.

Η μορφοποίηση ημερομηνίας και ώρας είναι ευαίσθητα πράγματα στο Excel, και το ίδιο ισχύει και για το VBA. Η προεπιλεγμένη ημερομηνία και ώρα βασίζεται στην ημερομηνία συστήματος στην οποία εργαζόμαστε, η οποία μπορεί να διαφέρει από σύστημα σε σύστημα. Σε αυτό το άρθρο, θα σας δείξουμε διαφορετικές τεχνικές για τη μορφοποίηση ημερομηνιών με κωδικούς VBA.

Για να αλλάξουμε τη μορφή ημερομηνίας με κωδικοποίηση VBA, πρέπει να γνωρίζουμε ποιες είναι οι μορφές ημερομηνίας και την επίδρασή της στην ημερομηνία.

Ο παρακάτω πίνακας δείχνει τη διαφορετική μορφοποίηση ημερομηνίας και τους κωδικούς τους.

Επομένως, εάν θυμάστε το παραπάνω γράφημα, η διαμόρφωση της ημερομηνίας μέσω της κωδικοποίησης VBA δεν είναι καθόλου δύσκολη υπόθεση.

Πώς να αλλάξετε τη μορφή ημερομηνίας στο VBA;

Ακολουθούν τα παραδείγματα της μορφής ημερομηνίας excel VBA.

Παράδειγμα # 1

Για παράδειγμα, έχουμε την ίδια ημερομηνία σε πολλά κελιά του φύλλου εργασίας, όπως φαίνεται παρακάτω.

Τώρα θα εφαρμόσουμε διαφορετικές μορφές ημερομηνίας για την ίδια ημερομηνία για να δούμε τον αντίκτυπο σε διαφορετικούς κωδικούς μορφής ημερομηνίας.

Αρχικά, αντιγράψτε τα ίδια δεδομένα στην επόμενη στήλη επίσης για να δείτε τον αντίκτυπο.

Για την πρώτη ημερομηνία, δηλαδή στο κελί A1 θα εφαρμόσουμε τη μορφή "DD-MM-YYYY" .

Στον κώδικα πρώτα, πρέπει να επιλέξουμε το κελί χρησιμοποιώντας το αντικείμενο RANGE .

Κώδικας:

Sub Date_Format_Example1 () Εύρος ("A1") End Sub

Εφόσον αλλάζουμε τη μορφή ημερομηνίας του κελιού, πρέπει να έχουμε πρόσβαση στην ιδιότητα " Μορφή αριθμού " του αντικειμένου RANGE.

Κώδικας:

Sub Date_Format_Example1 () Εύρος ("A1"). NumberFormat End Sub

Αφού αποκτήσετε πρόσβαση στο " Αριθμός μορφής ", πρέπει να ορίσουμε τη μορφή αριθμών τοποθετώντας το ίσο σύμβολο και να εφαρμόσουμε τον κωδικό μορφής σε διπλά εισαγωγικά.

Κώδικας:

Sub Date_Format_Example1 () Εύρος ("A1"). NumberFormat = "dd-mm-yyy" 'Αυτό θα συνδέσει την ημερομηνία στο "23-10-2019" End Sub

Όταν εκτελέσουμε αυτόν τον κώδικα, θα εφαρμόσει τη μορφή αριθμού στο κελί A1 ως " DD-MM-YYY".

Παραγωγή:

Παράδειγμα # 2

Ομοίως, έχω εφαρμόσει διαφορετικούς κωδικούς μορφοποίησης και για άλλα κελιά, και παρακάτω είναι ο κωδικός VBA για εσάς.

Κώδικας:

Sub Date_Format_Example2 () Εύρος ("A1"). NumberFormat = "dd-mm-yyy" 'Αυτό θα αλλάξει την ημερομηνία σε "23-10-2019" Εύρος ("A2"). NumberFormat = "ddd-mm-yyy" "Αυτό θα αλλάξει την ημερομηνία σε" Τετ-10-2019 "Εύρος (" A3 "). NumberFormat =" dddd-mm-yyy "" Αυτό θα αλλάξει την ημερομηνία σε "Τετάρτη-10-2019" Εύρος ("A4") .NumberFormat = "dd-mmm-yyy" "Αυτό θα αλλάξει την ημερομηνία σε" 23-Oct-2019 "Range (" A5 "). NumberFormat =" dd-mmmm-yyy "" Αυτό θα αλλάξει την ημερομηνία σε "23- Οκτώβριος-2019 "Εύρος (" A6 "). NumberFormat =" dd-mm-yy "'Αυτό θα αλλάξει την ημερομηνία σε" 23-10-19 "Εύρος (" A7 "). NumberFormat =" ddd mmm yyyy "" Αυτό θα αλλάξει την ημερομηνία σε "Τετ Οκτ 2019"Εύρος ("A8"). NumberFormat = "dddd mmmm yyyy" "Αυτό θα αλλάξει την ημερομηνία σε" Τετάρτη Οκτώβριος 2019 "End Sub

Το αποτέλεσμα αυτού του κώδικα θα έχει ως εξής.

Παραγωγή:

Αλλαγή μορφής ημερομηνίας χρησιμοποιώντας τη συνάρτηση FORMAT

Στο VBA, έχουμε μια συνάρτηση που ονομάζεται FORMAT, η οποία μπορεί να χρησιμοποιηθεί για την εφαρμογή της επιθυμητής μορφής στο κελί.

Απλώς πρέπει να καθορίσουμε ποια είναι η τιμή για την «Έκφραση» και να εφαρμόσουμε ανάλογα τη «Μορφή»

Κοιτάξτε τον παρακάτω κώδικα για ένα παράδειγμα.

Κώδικας:

Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 Μορφή MsgBox (MyVal, "DD-MM-YYYY") End Sub

Στον παραπάνω κώδικα, έχω ορίσει τη μεταβλητή ως παραλλαγή (η οποία μπορεί να έχει οποιαδήποτε τιμή).

Κώδικας:

Dim MyVal ως παραλλαγή

Στη συνέχεια για αυτήν τη μεταβλητή, έχω εκχωρήσει την τιμή ως 43586.

Κώδικας:

MyVal = 43586

Next, in the message box, I have shown the result of the variable, but before we show the result, we have used the “FORMAT” function to format the value of the variable “MyVal,” and the format is given. “DD-MM-YYYY.”

Code:

MsgBox Format(MyVal, "DD-MM-YYY")

Ok, let’s run the code and see the result in the message box in VBA.

Output:

As you can see above, the result shows as “01-05-2019”.

Now you must be wondering we have supplied the serial number but the result showing as the date. This is because Excel stores the date as serial numbers, so the value 43586 is equal to the date “01-05-2019,” and if you increase the number by 1 i.e., 43587, the date will be “02-05-2019”.

Code:

Sub Date_Format_Example3 () Dim MyVal As Variant MyVal = 43586 Μορφή MsgBox (MyVal, "DD-MM-YYY") End Sub

Πράγματα που πρέπει να θυμάστε

  • Η προεπιλεγμένη ημερομηνία του συστήματός σας θα εφαρμοστεί και στο excel σας.
  • Η ιδιότητα Number Format μπορεί να χρησιμοποιηθεί για να αλλάξει τη μορφή ημερομηνίας στο VBA.
  • Χρησιμοποιώντας τη συνάρτηση FORMAT, μπορούμε να αλλάξουμε τη μορφή ημερομηνίας.
  • Το Excel αποθηκεύει την ημερομηνία ως σειριακούς αριθμούς και αν εφαρμόσετε τη μορφή ημερομηνίας, θα εμφανιστεί ανάλογα.

ενδιαφέροντα άρθρα...