Ξεκινώντας με το Excel VBA UserForms

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


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

Σχεδιάστε τη μορφή χρήστη

  • Ανοίξτε τον οπτικό βασικό επεξεργαστή στο excel χρησιμοποιώντας συντόμευση ALT+F11. Στο Project Box, κάντε δεξί κλικ στο VBAProject(το αρχείο σας). Σε εισάγετε επιλογή, διάλεξε UserForm.
  • Αμέσως, θα δημιουργηθεί ένας νέος φάκελος και η μορφή χρήστη θα βρεθεί στον δικό του. Όλη η μορφή χρήστη για αυτό το έργο θα προστεθεί σε αυτόν το φάκελο.
  • Αλλάξτε το όνομα της φόρμας σε InvestmentForm στο κουτί ιδιοκτησίας.
  • Το πλαίσιο ιδιοτήτων εμφανίζεται στο κάτω αριστερό μέρος του προγράμματος εξερεύνησης. Εάν δεν μπορείτε να το δείτε, μεταβείτε για προβολή και κάντε κλικ στο Παράθυρο ιδιοτήτων. Θα το χρησιμοποιήσουμε πολύ, οπότε βεβαιωθείτε ότι είναι εκεί. Χρησιμοποιείται για το στυλ, την ονομασία και την προσαρμογή των φορμών.

  • Προσθέστε στοιχεία στη φόρμα: Στην παραπάνω εικόνα έχω προσθέσει ήδη στοιχεία (ετικέτες, πλαίσιο κειμένου, κουμπί εντολών). Ωστόσο, μια νέα μορφή χρήστη είναι εντελώς κενή. Πρέπει να χρησιμοποιήσετε το πλαίσιο εργαλείων για να προσθέσετε στοιχεία στη φόρμα σας. Εάν δεν μπορείτε να δείτε την εργαλειοθήκη, πάρτε την από θέα αυτί.

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

    Προσθέστε δύο κουμπιά επιλογής και ονομάστε τα Male and Female.

    Έχω χρησιμοποιήσει ένα πλαίσιο για να τα περικλείσω, αλλά δεν είναι απαραίτητο.

    Προσθήκη κουμπιών εντολών υποβάλλουν και Ματαίωση για να εκτελέσετε λειτουργία σε δεδομένη είσοδο.

  • Στοιχεία ονόματος: Το πλαίσιο κειμένου, οι ετικέτες, τα κουμπιά κ.λπ. είναι όλα στοιχεία. Και για να τα χρησιμοποιήσουμε σε κώδικα VBA πρέπει να τους δώσουμε ονόματα. Χρησιμοποιούμε το παράθυρο ιδιοτήτων για να αλλάξουμε το όνομά τους.
  • Επιλέξτε το στοιχείο. Εδώ επιλέγω το πλαίσιο κειμένου για το όνομα. Μεταβείτε στο παράθυρο ιδιοκτησίας και αλλάξτε το όνομα σε "NameBox”. Κάντε το ίδιο για κάθε στοιχείο που πρόκειται να χρησιμοποιήσετε. (δεν χρειάζεται να ονομάζετε ετικέτες, εκτός αν θέλετε να είναι κλικ.)


Έχω μετονομάσει το στοιχείο στον παρακάτω πίνακα και θα χρησιμοποιήσω αυτά τα ονόματα για να τα αναφέρω. Μπορείτε να έχετε διαφορετικά ονόματα. Απλώς αντικαταστήστε αυτά τα ονόματα με το όνομά σας. Αυτά είναι ονόματα VBA (κωδικό όνομα) που θα χρησιμοποιηθούν στον κώδικα. Δεν θα αντικατοπτρίζονται στη μορφή.
Το κείμενο που μπορείτε να δείτε στις ετικέτες και τα κουμπιά είναι "Υπότιτλοι". Το όνομα και η λεζάντα του στοιχείου μπορεί να είναι ίδια, αν θέλετε.

Στοιχείο Μετονομάζω
Πλαίσιο κειμένου ονόματος NameBox
Πλαίσιο κειμένου ηλικίας AgeBox
Κουμπί αρσενικής επιλογής MaleOption
Κουμπί γυναικείας επιλογής FemaleOption
Επενδυτικό πλαίσιο κειμένου InvestBox
Κουμπί υποβολής εντολών Κουμπί υποβολής
Κουμπί ακύρωσης εντολής Κουμπί Ακύρωση
  • Εμφάνιση φόρμας χρήστη στον χρήστη: Τώρα η φόρμα είναι έτοιμη, ας την δείξουμε στον χρήστη. Αλλά περιμένετε, πώς θα το κάνω αυτό. Δεν υπάρχει επιλογή στο φύλλο εργασίας για να καλέσετε τη φόρμα χρήστη.
  • Στην πραγματικότητα, η φόρμα χρήστη χρειάζεται έναυσμα. Δεν μπορεί να εμφανιστεί από μόνο του. Μπορείτε να χρησιμοποιήσετε ένα κουμπί εντολών, μια υπορουτίνα ή ένα συμβάν για να εμφανιστεί η φόρμα στην οθόνη.

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

    • Σε φύλλο εργασίας, μεταβείτε στην καρτέλα προγραμματιστές; Εισάγετε? Κουμπί (έλεγχος φόρμας). Μετονομάστε την ανοιχτή μορφή.
    • Κάντε δεξί κλικ πάνω του. Κάντε κλικ στην εκχώρηση μακροεντολής και, στη συνέχεια, κάντε κλικ στο νέο.

  • Ένα sub θα δημιουργηθεί αμέσως. Τώρα προσθέστε αυτήν τη γραμμή σε αυτό το υπο.
Sub Open_Form () 'Φόρμα ανοίγματος InvestmentForm.Show End Sub 

Εχει γίνει. Επιστρέψτε σε αυτό το φύλλο και κάντε κλικ στο κουμπί. Θα εμφανιστεί η φόρμα χρήστη.

  • Συμπληρώστε το φύλλο χρησιμοποιώντας τη φόρμα χρήστη VBA: Καθώς κάναμε κλικ στο κουμπί εντολών (άνοιγμα φόρμας) η φόρμα εμφανίζεται. Τώρα μπορείτε να συμπληρώσετε τη φόρμα. Αλλά όταν κάνουμε κλικ στο κουμπί υποβολής, τα δεδομένα θα έπρεπε να έχουν εισαχθεί σε αυτό το φύλλο, αλλά δεν συμβαίνει τίποτα.

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

  • Επιστρέψτε στο VBA και κάντε διπλό κλικ στο υποβάλλουν κουμπί. Θα δημιουργηθεί αυτόματα ένα νέο υποτμήμα. Αυτό το δευτερεύον στοιχείο είναι ενσωματωμένο στη φόρμα και δεν μπορείτε να το βρείτε σε καμία ενότητα. Αυτό ισχύει για κάθε στοιχείο μορφής.
  • Γράψτε αυτόν τον κώδικα vba σε αυτό το δευτερεύον.
 Private Sub SubmitButton_Click () Sheet1.Activate 'get the first κενή σειρά στο φύλλο (διαβάστε σχετικά εδώ) lstrow = Cells (Rows.Count, 1). End (xlUp). Row Set firstEmptyRow = Range ("A" & lstrow + 1 ) 'αρχικοποίηση κάθε κελιού με δεδομένα firstEmptyRow.Offset (0, 0). Value = nameBox.Value' first cell firstEmptyRow.Offset (0, 1). Value = AgeBox.Value 'πρώτο κελί προς τα δεξιά firstEmptyRow.Offset (0, 3) .Value = InvestBox.Value «τρίτο κελί στα δεξιά» που ελέγχει το κουμπί επιλογής If MaleOption.Value = True Στη συνέχεια firstEmptyRow.Offset (0, 2) .Value = δεύτερο κύτταρο "Αρσενικό" στα δεξιά Άλλο firstEmptyRow.Offset ( 0, 2) .Value = "Γυναίκα" "δεύτερο κελί προς τα δεξιά Τέλος Αν" Κλείσιμο φόρμας Εκφόρτωση Τέλος υπο 

Το παραπάνω απόσπασμα κώδικα VBA εκτελείται όταν κάνετε κλικ στο κουμπί υποβολής. Βρίσκει την πρώτη κενή σειρά στο φύλλο και τη γεμίζει με τιμές που παρέχονται σε μορφή. Και στο τέλος κλείνει τη φόρμα χρησιμοποιώντας την εντολή "Unload Me".

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

Κάντε διπλό κλικ στο κουμπί εντολής ακύρωσης στο πρόγραμμα επεξεργασίας VBA. Θα δημιουργηθεί ένα νέο sub. Απλώς γράψτε αυτήν τη γραμμή κώδικα για να κλείσετε τη φόρμα χρήστη.

 Private Sub CancelButton_Click () 'Φόρμα κλεισίματος Unload Me End Sub 

Τέλος, ο κωδικός φόρμας θα μοιάζει με αυτόν.

Και αυτό είναι. Αυτός είναι ο τρόπος με τον οποίο χρησιμοποιείτε το Excel vba userform για να λαμβάνετε πληροφορίες από τους χρήστες. Σε αυτό το άρθρο, μόλις διερευνήσαμε τη βασική χρήση του userform, ώστε να εξοικειωθείτε με αυτό. Είναι απλό, αν έχετε γνώση της βασικής vba.

Σε μελλοντικά άρθρα, θα διερευνήσουμε πιο προηγμένες λειτουργίες των μορφών χρηστών vba στο Excel. Θα δημιουργήσουμε userform στο excel για να κάνουμε πολλά περισσότερα. Θα διερευνήσουμε διαφορετικά εργαλεία και στοιχεία που είναι διαθέσιμα για το vba userform. Μέχρι τότε εξασκηθείτε σε αυτό. Εάν θέλετε, μπορείτε να κατεβάσετε αυτό το αρχείο για αναφορά.
Λοιπόν, ναι, αυτό ήταν ένα μικρό και απλό σεμινάριο για τη μορφή χρήστη. Ελπίζω να ήταν πολυμήχανος. Ενημερώστε με εάν έχετε αμφιβολίες σχετικά με αυτό, ενημερώστε με στην παρακάτω ενότητα σχολίων.
Σχετικά Άρθρα

Αλλάξτε την τιμή/το περιεχόμενο πολλών στοιχείων ελέγχου UserForm χρησιμοποιώντας το VBA στο Excel

Αποτρέψτε το κλείσιμο μιας μορφής χρήστη όταν ο χρήστης κάνει κλικ στο κουμπί x χρησιμοποιώντας VBA στο Excel

Επιστρέψτε τα κελιά στα οποία αναφέρεται ο χρήστης χρησιμοποιώντας τον έλεγχο RefEdit της μορφής χρήστη στο Excel
Δημοφιλή άρθρα:
Η συνάρτηση VLOOKUP στο Excel

COUNTIF στο Excel 2016

Πώς να χρησιμοποιήσετε τη συνάρτηση SUMIF στο Excel

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave