Αποδοχή έγκυρων ημερομηνιών μόνο από τον χρήστη στο Excel VBA

Anonim

Στην πρόσφατη εργασία μου, μου ζητήθηκε να δεχτώ πληροφορίες από τον χρήστη. Μια τιμή εισόδου ήταν η ημερομηνία γέννησης και, φυσικά, πρέπει να είναι ημερομηνία. Αυτό που έκανα, ήταν η αποθήκευση της εισόδου σε έναν τύπο δεδομένων. Αυτό έκανε τον κώδικα χωρίς σφάλματα και ο κώδικας δέχθηκε οποιαδήποτε τιμή έδινε ο χρήστης. Παρακάτω είναι ο κωδικός:

Dim dob As Variant dob ​​= Application.InputBox ("Εισαγάγετε την ημερομηνία γέννησής σας") 

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

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

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

Sub check_date () Dim dob As Date On Error GoTo Errorhandler dob = Application.InputBox ("Εισαγάγετε την ημερομηνία γέννησής σας") Στο Error GoTo 0 Debug.Print dob ​​Exit Sub Errorhandler: MsgBox "Εισαγάγετε μια έγκυρη ημερομηνία." Τέλος υπο 

Όταν εκτελέσετε τον παραπάνω κωδικό, θα σας ζητήσει να εισαγάγετε την ημερομηνία γέννησής σας. Εάν εισαγάγετε μια μη έγκυρη ημερομηνία, θα σας ζητήσει να εισαγάγετε μια έγκυρη ημερομηνία και να ολοκληρώσετε τη διαδικασία.

Πώς λειτουργεί;

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

Στη συνέχεια, εντοπίζουμε αυτό το σφάλμα χρησιμοποιώντας τοΣτο Error Gotoχειριστής σφαλμάτων.

On Error GoTo Errorhandler dob = Application.InputBox ("Εισαγάγετε την ημερομηνία γέννησής σας") Σφάλμα GoTo 0 

Χρησιμοποιώντας το Σφάλμα ενεργοποίησης μεταφέρουμε το στοιχείο ελέγχου στην ετικέτα Errorhandler, το οποίο βρίσκεται ακριβώς πριν από τη δήλωση End Sub. Έτσι, ο χρήστης καλείται να εισαγάγει μια έγκυρη ημερομηνία και το δευτερεύον τελειώνει.

Errorhandler: MsgBox "Εισαγάγετε μια έγκυρη ημερομηνία." Τέλος υπο 

Εάν ο χρήστης ορίσει μια έγκυρη ημερομηνία, τότε το στοιχείο ελέγχου κυλά κανονικά και η είσοδος αποθηκεύεται στη μεταβλητή dob. Έχουμε βάλει τη δευτερεύουσα δήλωση Exit έτσι ώστε το στοιχείο ελέγχου να μην μεταβεί στο errorhandler και να τελειώσει τη διαδικασία εκεί. Βάλτε λοιπόν όλες τις τελικές δηλώσεις σας πριν από την έξοδο sub. Και αυτό είναι όλο.

Λοιπόν, ναι, έτσι περιορίζετε τον χρήστη να εισάγει μόνο έγκυρη ημερομηνία. Ενημερώστε με εάν έχετε αμφιβολίες σχετικά με ημερομηνίες VBA ή οποιοδήποτε άλλο ερώτημα που σχετίζεται με το Excel/VBA. Ρωτήστε μας στην παρακάτω ενότητα σχολίων.

Εισαγωγή σφραγίδας ημερομηνίας με VBA | Για να εισαγάγετε τη χρονική σήμανση όταν συμπληρώθηκε ένα συγκεκριμένο κελί χρησιμοποιώντας αυτόν τον κώδικα VBA. Εάν εισαγάγετε οποιαδήποτε τιμή στη στήλη Α, το παρακείμενο κελί στη στήλη Β θα συμπληρωθεί αυτόματα με την ώρα εισαγωγής.

Ημερομηνία & inρα σε VBA | Βρείτε όλα τα θέματα σχετικά με την ημερομηνία και την ώρα στο VBA σε αυτήν τη σελίδα.

Πώς μπορούμε να μορφοποιήσουμε ημερομηνία μέσω VBA; | Μάθετε πώς μπορείτε να μορφοποιήσετε την ημερομηνία χρησιμοποιώντας το VBA στο Excel. Ας πάρουμε ένα παράδειγμα για να καταλάβουμε πώς και πού μπορούμε να μορφοποιήσουμε το κελί σε σύντομο αριθμό ημερομηνίας.

Δημοφιλή άρθρα:

50 συντομεύσεις Excel για να αυξήσετε την παραγωγικότητά σας | Γίνετε πιο γρήγοροι στην εργασία σας. Αυτές οι 50 συντομεύσεις θα σας κάνουν να εργάζεστε ακόμη πιο γρήγορα στο Excel.

Η συνάρτηση VLOOKUP στο Excel | Αυτή είναι μια από τις πιο δημοφιλείς και δημοφιλείς λειτουργίες του excel που χρησιμοποιείται για την αναζήτηση τιμών από διαφορετικά εύρη και φύλλα.

COUNTIF στο Excel 2016 | Μετρήστε τιμές με συνθήκες χρησιμοποιώντας αυτήν την εκπληκτική συνάρτηση. Δεν χρειάζεται να φιλτράρετε τα δεδομένα σας για να μετρήσετε συγκεκριμένη τιμή. Η λειτουργία Countif είναι απαραίτητη για την προετοιμασία του ταμπλό σας.

Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel | Αυτή είναι μια άλλη βασική λειτουργία του ταμπλό. Αυτό σας βοηθά να συνοψίσετε τιμές υπό συγκεκριμένες συνθήκες.