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

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

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

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

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

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

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

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

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

Μπορείτε να κατεβάσετε αυτό το Πρότυπο ημερομηνίας Excel μορφής VBA εδώ - Πρότυπο ημερομηνίας Excel μορφής VBA

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

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

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

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

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

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

Κώδικας:

 Sub Date_Format_Example1 () Range ("A1") End Sub 

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

Κώδικας:

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

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

Κώδικας:

 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 "Range (" 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

Στη συνέχεια στο πλαίσιο μηνύματος, έχω δείξει το αποτέλεσμα της μεταβλητής, αλλά πριν δείξουμε το αποτέλεσμα χρησιμοποιήσαμε τη συνάρτηση " FORMAT " για να διαμορφώσουμε την τιμή της μεταβλητής " MyVal " και η μορφή που δίνεται είναι " DD-MM- YYYY ».

Κώδικας:

Μορφή MsgBox (MyVal, "DD-MM-YYY")

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

Παραγωγή:

Όπως μπορείτε να δείτε παραπάνω, το αποτέλεσμα εμφανίζεται ως " 01-05-2019 ".

Τώρα πρέπει να αναρωτιέστε ότι έχουμε δώσει τον σειριακό αριθμό, αλλά το αποτέλεσμα εμφανίζεται ως ημερομηνία. Αυτό συμβαίνει επειδή το Excel αποθηκεύει την ημερομηνία ως σειριακούς αριθμούς, επομένως η τιμή 43586 είναι ίση με την ημερομηνία "01-05-2019" και αν αυξήσετε τον αριθμό κατά 1 δηλαδή 43587 η ημερομηνία θα είναι "02-05-2019".

Κώδικας:

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

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

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