Η Visual Basic είναι μια εξαιρετική γλώσσα για την αυτοματοποίηση επαναλαμβανόμενων εργασιών στο Excel. Φανταστείτε να ανεβάσετε τον αυτοματισμό σας δημιουργώντας εξαιρετικά λειτουργικές φόρμες χρήστη που φαίνονται τακτοποιημένες και στους τελικούς χρήστες.
Οι φόρμες χρήστη στο VBA σας παρουσιάζουν έναν κενό καμβά. μπορείτε να σχεδιάσετε και να οργανώσετε τα έντυπα για να ταιριάζουν στις ανάγκες σας ανά πάσα στιγμή.
Σε αυτόν τον οδηγό, θα μάθετε να δημιουργείτε μια φόρμα εισαγωγής δεδομένων βασισμένη σε μαθητές που καταγράφει σχετικές πληροφορίες σε συνδεδεμένα φύλλα του Excel.
Δημιουργία φόρμας χρήστη με το Excel VBA
Ανοίξτε ένα νέο βιβλίο εργασίας του Excel και εκτελέστε μερικά προκαταρκτικά βήματα προτού ξεκινήσετε τη δημιουργία της φόρμας καταχώρισης δεδομένων.
Αποθηκεύστε το βιβλίο εργασίας σας με το επιθυμητό όνομα. μην ξεχάσετε να αλλάξετε τον τύπο του αρχείου σε an Βιβλίο εργασίας με δυνατότητα Macro-Enabled.
Σχετιζομαι με:Ιστότοποι και ιστολόγια για να μάθετε Συμβουλές και κόλπα του Excel
Προσθέστε δύο φύλλα σε αυτό το βιβλίο εργασίας, με τα ακόλουθα ονόματα:
- Φύλλο 1: Σπίτι
- Φύλλο2:Βάση δεδομένων μαθητών
Μη διστάσετε να αλλάξετε αυτά τα ονόματα σύμφωνα με τις απαιτήσεις σας.
Στο Σπίτι φύλλο, προσθέστε ένα κουμπί για να ελέγξετε τη μακροεντολή φόρμας χρήστη. μεταβείτε στο Προγραμματιστής καρτέλα και κάντε κλικ στο Κουμπί επιλογή από το Εισάγετε αναπτυσσόμενη λίστα. Τοποθετήστε το κουμπί σε οποιοδήποτε σημείο του φύλλου.
Αφού τοποθετήσετε το κουμπί, μετονομάστε το. Κάντε δεξί κλικ πάνω του και κάντε κλικ στο Νέος για να εκχωρήσετε μια νέα μακροεντολή για την εμφάνιση της φόρμας.
Εισαγάγετε τον ακόλουθο κωδικό στο παράθυρο του προγράμματος επεξεργασίας:
Sub Button1_Click()
UserForm. προβολή
End Sub
Μόλις το Σπίτι και Βάση Δεδομένων Φοιτητών τα φύλλα είναι έτοιμα, ήρθε η ώρα να σχεδιάσετε τη φόρμα χρήστη. Πλοηγηθείτε στο Προγραμματιστής καρτέλα και κάντε κλικ στο Visual Basic για να ανοίξετε το πρόγραμμα επεξεργασίας. Εναλλακτικά, μπορείτε να πατήσετε ALT+F11 για να ανοίξετε το παράθυρο του επεξεργαστή.
Κάνε κλικ στο Εισάγετε καρτέλα και επιλέξτε UserForm.
Μια κενή φόρμα χρήστη είναι έτοιμη για χρήση. ανοίγει μια συνοδευτική εργαλειοθήκη μαζί με τη φόρμα, η οποία έχει όλα τα απαραίτητα εργαλεία για να σχεδιάσει τη διάταξη.
Από την εργαλειοθήκη, επιλέξτε το Πλαίσιο επιλογή. Σύρετε το στη φόρμα χρήστη και αλλάξτε το μέγεθός του.
Στο (όνομα) επιλογή, μπορείτε να αλλάξετε το όνομα του πλαισίου. Για να εμφανίσετε το όνομα στη διεπαφή, μπορείτε να αλλάξετε το όνομα στο Λεζάντα στήλη.
Στη συνέχεια, επιλέξτε το Επιγραφή επιλογή από την εργαλειοθήκη και εισαγάγετε δύο ετικέτες σε αυτό το πλαίσιο. Μετονομάστε το πρώτο σε Αριθμός αίτησης και το δεύτερο ως Φοιτητική ταυτότητα.
Ισχύει η ίδια λογική μετονομασίας. αλλάξτε τα ονόματα μέσω του Λεζάντα επιλογή εντός του Ιδιότητες παράθυρο. Βεβαιωθείτε ότι έχετε επιλέξει την αντίστοιχη ετικέτα πριν αλλάξετε το όνομά της.
Στη συνέχεια, εισαγάγετε δύο πλαίσια κειμένου δίπλα στα πλαίσια ετικέτας. Αυτά θα χρησιμοποιηθούν για την καταγραφή των εισροών του χρήστη. Αλλάξτε τα ονόματα δύο πλαισίων κειμένου μέσω του (Ονομα) στήλη εντός του Ιδιότητες παράθυρο. Τα ονόματα είναι τα εξής:
- Πλαίσιο κειμένου 1: txtΑριθμός εφαρμογής
- Πλαίσιο κειμένου 2: txtStudentID
Σχεδιασμός του Πλαισίου Στοιχείων Μαθητή
Εισαγάγετε ένα κατακόρυφο πλαίσιο και προσθέστε 10 ετικέτες και 10 πλαίσια κειμένου. Μετονομάστε καθένα από αυτά με τον ακόλουθο τρόπο:
- Ετικέτα 3: Ονομα
- Ετικέτα 4: Ηλικία
- Ετικέτα 5: Διεύθυνση
- Ετικέτα 6: Τηλέφωνο
- Ετικέτα 7: Πόλη
- Ετικέτα 8: Χώρα
- Ετικέτα 9: Ημερομηνια γεννησης
- Ετικέτα 10: Ταχυδρομικός κώδικας
- Ετικέτα 11: Ιθαγένεια
- Ετικέτα 12: Γένος
Εισαγάγετε τα αντίστοιχα πλαίσια κειμένου δίπλα σε αυτές τις ετικέτες. εισάγετε δύο (ή περισσότερα) κουμπί επιλογής πλαίσια από την εργαλειοθήκη φόρμας χρήστη δίπλα στο γένος επιγραφή. Μετονομάστε τα Αρσενικός και Θηλυκός (μαζί με το Custom), αντίστοιχα.
Σχεδιασμός του πλαισίου λεπτομερειών του μαθήματος
Προσθέστε ένα άλλο κατακόρυφο πλαίσιο και εισαγάγετε έξι ετικέτες και έξι πλαίσια κειμένου που αντιστοιχούν σε κάθε ετικέτα. Μετονομάστε τις ετικέτες ως εξής:
- Ετικέτα 13: Όνομα Μαθήματος
- Ετικέτα 14: Ταυτότητα μαθήματος
- Ετικέτα 15: Ημερομηνία έναρξης εγγραφής
- Ετικέτα 16: Ημερομηνία Λήξης Εγγραφής
- Ετικέτα 17: Διάρκεια μαθήματος
- Ετικέτα 18: Τμήμα
Σχετιζομαι με: 4 λάθη που πρέπει να αποφεύγετε κατά τον προγραμματισμό μακροεντολών Excel με VBA
Σχεδιασμός του Πλαισίου Στοιχείων Πληρωμής
Εισαγάγετε ένα νέο πλαίσιο. προσθέστε μια νέα ετικέτα και μετονομάστε την σε "Θέλετε να ενημερώσετε τα στοιχεία πληρωμής;" Εισαγάγετε δύο κουμπιά επιλογής? μετονομάστε τους Ναί και Οχι.
Ομοίως, προσθέστε ένα νέο πλαίσιο που περιέχει δύο επιπλέον ετικέτες και δύο σύνθετα πλαίσια. Μετονομάστε τις ετικέτες ως εξής:
- Ετικέτα 19: Η πληρωμή ελήφθη
- Ετικέτα 20: Τρόπος πληρωμής
Σχεδιασμός του παραθύρου πλοήγησης
Στο τελικό πλαίσιο, προσθέστε τρία κουμπιά από την εργαλειοθήκη, τα οποία θα περιέχουν κώδικα για την εκτέλεση των φορμών.
Μετονομάστε τα κουμπιά με τον ακόλουθο τρόπο:
- Κουμπί 1: Αποθήκευση λεπτομερειών
- Κουμπί 2: Καθαρή φόρμα
- Κουμπί 3: Εξοδος
Σύνταξη του αυτοματοποιημένου κωδικού φόρμας: Κουμπί αποθήκευσης λεπτομερειών
Κάντε διπλό κλικ στο Αποθήκευση λεπτομερειών κουμπί. Στην ενότητα που ακολουθεί, εισαγάγετε τον ακόλουθο κώδικα:
Private Sub CommandButton2_Click()
«Δηλώστε τις μεταβλητές που χρησιμοποιούνται σε όλους τους κωδικούς
Dim sht Ως φύλλο εργασίας, sht1 ως φύλλο εργασίας, lastrow As Long«Προσθέστε επικυρώσεις για να ελέγξετε εάν οι τιμές χαρακτήρων εισάγονται στα αριθμητικά πεδία.
Αν VBA.IsNumeric (txtApplicationNo. Value) = False Τότε
MsgBox "Μόνο αριθμητικές τιμές γίνονται δεκτές στον αριθμό εφαρμογής", vbCritical
Έξοδος υπο
Τέλος εανΑν VBA.IsNumeric (txtStudentID.Value) = False Τότε
MsgBox "Μόνο αριθμητικές τιμές γίνονται δεκτές στο Student ID", vbCritical
Έξοδος υπο
Τέλος εανΕάν το VBA.IsNumeric (txtAge. Τιμή) = Λάθος Τότε
MsgBox "Μόνο αριθμητικές τιμές γίνονται δεκτές στο Age", vbCritical
Έξοδος υπο
Τέλος εανΕάν το VBA.IsNumeric (txtPhone. Τιμή) = Λάθος Τότε
MsgBox "Μόνο αριθμητικές τιμές γίνονται δεκτές στον αριθμό τηλεφώνου", vbCritical
Έξοδος υπο
Τέλος εανΑν VBA.IsNumeric (Me.txtCourseID.Value) = False Τότε
MsgBox "Μόνο αριθμητικές τιμές γίνονται δεκτές στο Course ID", vbCritical
Έξοδος υπο
Τέλος εαν«Συνδέστε τα πεδία πλαισίου κειμένου με τα υποκείμενα φύλλα για να δημιουργήσετε μια κυλιόμενη βάση δεδομένων
Set sht = This Workbook. Φύλλα ("Βάση δεδομένων μαθητών")'υπολογίστε την τελευταία συμπληρωμένη σειρά και στα δύο φύλλα
lastrow = sht. Εύρος ("a" & Σειρές. Μέτρηση).Τέλος (xlUp).Σειρά + 1
«επικολλήστε τις τιμές κάθε πλαισίου κειμένου στα αντίστοιχα κελιά φύλλου
Με sht
.Range("a" & lastrow).Value = txtApplicationNo. αξία
.Range("b" & lastrow).Value = txtStudentID.Value
.Range("c" & lastrow).Value = txtName. αξία
.Range("d" & lastrow).Value = txtAge. αξία
.Range("e" & lastrow).Value = txtDOB.Value
.Range("g" & lastrow).Τιμή = txtΔιεύθυνση. αξία
.Range("h" & lastrow).Τιμή = txtΤηλέφωνο. αξία
.Range("i" & lastrow).Value = txtCity. αξία
.Range("j" & lastrow).Τιμή = txtΧώρα. αξία
.Range("k" & lastrow).Τιμή = txtZip. αξία
.Range("l" & lastrow).Τιμή = txtΕθνικότητα. αξία
.Range("m" & lastrow).Value = txtCourse. αξία
.Range("n" & lastrow).Value = txtCourseID.Value
.Range("o" & lastrow).Value = txtenrollmentstart. αξία
.Range("p" & lastrow).Value = txtenrollmentend. αξία
.Range("q" & lastrow).Value = txtcourseduration. αξία
.Range("r" & lastrow).Value = txtDept. αξίαΤέλος με
sht. Θέτω εις ενέργειαν«καθορίστε το φύλο σύμφωνα με τα στοιχεία του χρήστη
Αν optMale. Τιμή = Αληθινή Τότε sht. Εύρος ("g" & lastrow).Τιμή = "Άνδρας"
Αν optFemale. Τιμή = Αληθινή Τότε sht. Εύρος ("g" & lastrow).Τιμή = "Γυναίκα"
«Εμφανίστε ένα πλαίσιο μηνύματος, σε περίπτωση που ο χρήστης επιλέξει το κουμπί επιλογής ΝαιΕάν επιλέγετε Ναι. Value = True Τότε
MsgBox "Παρακαλώ επιλέξτε τα στοιχεία πληρωμής παρακάτω"
Αλλού:
Έξοδος υποΤέλος εαν
End Sub
Εάν δεν είστε βέβαιοι για το τι σημαίνει εξαρτήματα ή οποιοσδήποτε από τον κώδικα, μην ανησυχείτε. Θα το εξηγήσουμε διεξοδικά στην επόμενη ενότητα.
Επεξήγηση αυτοματοποιημένου κωδικού φόρμας
Τα πλαίσια κειμένου θα περιέχουν ένα μείγμα κειμένου και αριθμητικών τιμών, επομένως είναι σημαντικό να περιορίσετε την εισαγωγή του χρήστη. ο Αριθμός αίτησης, Φοιτητική ταυτότητα, Ηλικία, Τηλέφωνο, Ταυτότητα μαθήματος, και Διάρκεια μαθήματος θα πρέπει να περιέχει μόνο αριθμούς, ενώ τα υπόλοιπα θα περιέχουν κείμενο.
Χρησιμοποιώντας ένα ΑΝ δήλωση, ο κωδικός ενεργοποιεί αναδυόμενα παράθυρα σφάλματος εάν ο χρήστης εισαγάγει έναν χαρακτήρα ή μια τιμή κειμένου σε οποιοδήποτε από τα αριθμητικά πεδία.
Εφόσον υπάρχουν επικυρώσεις σφαλμάτων, πρέπει να συνδέσετε τα πλαίσια κειμένου με τα κελιά του φύλλου.
ο τελευταία Οι μεταβλητές θα υπολογίσουν την τελευταία συμπληρωμένη σειρά και θα αποθηκεύσουν τις τιμές σε αυτές για δυναμική χρήση.
Τέλος, οι τιμές επικολλούνται από τα πλαίσια κειμένου στο συνδεδεμένο φύλλο Excel.
Διαγραφή κωδικών φόρμας και κουμπιού εξόδου
Στο Σαφή κουμπί, πρέπει να γράψετε τον κώδικα για να διαγράψετε τις υπάρχουσες τιμές από τη φόρμα χρήστη. Αυτό μπορεί να γίνει με τον ακόλουθο τρόπο:
Με εμένα
.txtΑριθ. εφαρμογής. Τιμή = ""
.txtStudentID.Value = ""
..txtΌνομα. Τιμή = ""
.txtAge. Τιμή = ""
.txtΔιεύθυνση. Τιμή = ""
.txtΤηλέφωνο. Τιμή = ""
.txtCity. Τιμή = ""
.txtΧώρα. Τιμή = ""
.txtDOB.Value = ""
.txtZip. Τιμή = ""
.txtΕθνικότητα. Τιμή = ""
.txtΜάθημα. Τιμή = ""
.txtCourseID.Value = ""
.txtenrollmentsstart. Τιμή = ""
.txtenrollmentend. Τιμή = ""
.txtcourseduration. Τιμή = ""
.txtDept. Τιμή = ""
.cmbPaymentMode. Τιμή = ""
.cmbΠληρωμή. Τιμή = ""
.optΓυναίκα. Τιμή = Λάθος
.optMale. Τιμή = Λάθος
.optΝαι. Τιμή = Λάθος
.optNo. Τιμή = Λάθος
Τέλος με
Στο έξοδος κουμπί, πληκτρολογήστε τον παρακάτω κωδικό για να κλείσετε τη φόρμα χρήστη.
Private Sub CommandButton5_Click()
Ξεφόρτωσέ με
End Sub
Ως τελευταίο βήμα, πρέπει να εισαγάγετε μερικά τελικά κομμάτια κώδικα για να δημιουργήσετε τις αναπτυσσόμενες τιμές για τα σύνθετα πλαίσια (μέσα στα πλαίσια πληρωμής).
Private Sub UserForm_Activate()
Με το cmbPayment
.Σαφή
.Πρόσθεσε είδος ""
.Προσθήκη στοιχείου "Ναι"
.Προσθήκη στοιχείου "Όχι"
Τέλος με
Με τη λειτουργία cmbPaymentMode
.Σαφή
.Πρόσθεσε είδος ""
.Προσθήκη στοιχείου "Μετρητά"
.AddItem "Card"
.AddItem "Έλεγχος"
Τέλος με
End Sub
Ο αυτοματισμός VBA διευκολύνει την εργασία
Η VBA είναι μια πολύπλευρη γλώσσα που εξυπηρετεί πολλούς σκοπούς. Οι φόρμες χρήστη αποτελούν μόνο μία πτυχή στο VBA—υπάρχουν πολλές άλλες χρήσεις, όπως η ενοποίηση βιβλίων εργασίας και φύλλων εργασίας, η συγχώνευση πολλών φύλλων του Excel και άλλες εύχρηστες χρήσεις αυτοματισμού.
Ανεξάρτητα από τον στόχο αυτοματισμού, η VBA είναι στο ύψος της αποστολής. Εάν συνεχίσετε να μαθαίνετε και να εξασκείτε, δεν υπάρχει καμία πτυχή της ροής εργασίας σας που να μην μπορείτε να βελτιώσετε.
Η συγχώνευση δεδομένων από περισσότερα από ένα φύλλα Excel στο ίδιο βιβλίο εργασίας είναι μια πραγματική ταλαιπωρία... μέχρι να χρησιμοποιήσετε μακροεντολές VBA.
Διαβάστε Επόμενο
- Προγραμματισμός
- Παραγωγικότητα
- Προγραμματισμός της Visual Basic
- Microsoft Excel
Ο Gaurav Siyal έχει διετή εμπειρία συγγραφής, γράφοντας για μια σειρά από εταιρείες ψηφιακού μάρκετινγκ και έγγραφα κύκλου ζωής λογισμικού.
Εγγραφείτε στο ενημερωτικό μας δελτίο
Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Κάντε κλικ εδώ για να εγγραφείτε