Σε ορισμένες περιπτώσεις, μπορεί να θέλετε ο χρήστης να επιλέξει μια περιοχή Excel VBA ενώ εμφανίζεται ένα πλαίσιο διαλόγου. Ένα παράδειγμα αυτού του τύπου επιλογής εύρους Excel VBA εμφανίζεται στο παράθυρο διαλόγου Δημιουργία πίνακα, το οποίο εμφανίζεται όταν επιλέγετε Αρχική → Εισαγωγή → Πίνακες → Πίνακας. Το πλαίσιο διαλόγου Δημιουργία πίνακα έχει ένα στοιχείο ελέγχου επιλογέα εύρους που περιέχει την εικασία του Excel σχετικά με το εύρος προς μετατροπή — αλλά μπορείτε να χρησιμοποιήσετε αυτό το στοιχείο ελέγχου για να αλλάξετε το εύρος επιλέγοντας κελιά στο φύλλο εργασίας.
Για να επιτρέψετε μια επιλογή εύρους Excel VBA στο πλαίσιο διαλόγου σας, προσθέστε ένα στοιχείο ελέγχου RefEdit. Το ακόλουθο παράδειγμα εμφανίζει ένα πλαίσιο διαλόγου με τη διεύθυνση εύρους της τρέχουσας περιοχής να εμφανίζεται σε ένα στοιχείο ελέγχου RefEdit. Η τρέχουσα περιοχή είναι το μπλοκ των μη κενών κελιών που περιέχει το ενεργό κελί. Ο χρήστης μπορεί να αποδεχτεί ή να αλλάξει αυτό το εύρος. Όταν ο χρήστης κάνει κλικ στο OK, η διαδικασία κάνει το εύρος έντονη γραφή.
Αυτό το πλαίσιο διαλόγου επιτρέπει στο χρήστη να επιλέξει μια περιοχή.
Αυτό το παράδειγμα Excel VBA προϋποθέτει τα εξής:
- Έχετε ένα UserForm που ονομάζεται UserForm1.
- Το UserForm περιέχει ένα στοιχείο ελέγχου CommandButton με το όνομα OKButton.
- Το UserForm περιέχει ένα στοιχείο ελέγχου CommandButton που ονομάζεται CancelButton.
- Το UserForm περιέχει ένα στοιχείο ελέγχου RefEdit που ονομάζεται RefEdit1.
Ο κώδικας αποθηκεύεται σε μια μονάδα VBA και εμφανίζεται εδώ. Αυτός ο κώδικας κάνει δύο πράγματα: αρχικοποιεί το παράθυρο διαλόγου εκχωρώντας τη διεύθυνση της τρέχουσας περιοχής στο στοιχείο ελέγχου RefEdit και εμφανίζει το UserForm.
Sub BoldCells()
' Έξοδος εάν το φύλλο εργασίας δεν είναι ενεργό
Αν TypeName(ActiveSheet) <> "Worksheet" Τότε βγείτε από το Sub
' Επιλέξτε την τρέχουσα περιοχή
ActiveCell.CurrentRegion.Select
' Αρχικοποίηση ελέγχου RefEdit
UserForm1.RefEdit1.Text = Επιλογή.Διεύθυνση
Εμφάνιση διαλόγου
UserForm1.Show
End Sub
Η ακόλουθη διαδικασία εκτελείται όταν κάνετε κλικ στο κουμπί OK. Αυτή η διαδικασία κάνει έναν απλό έλεγχο σφαλμάτων για να βεβαιωθεί ότι το εύρος που καθορίζεται στο στοιχείο ελέγχου RefEdit είναι έγκυρο.
Ιδιωτικό δευτερεύον OKButton_Click()
Σε σφάλμα Μετάβαση στο BadRange
Εύρος(RefEdit1.Text).Font.Bold = True
Ξεφορτώστε το UserForm1
Έξοδος υπο
BadRange:
MsgBox "Το καθορισμένο εύρος δεν είναι έγκυρο."
End Sub
Εάν παρουσιαστεί σφάλμα στο Excel VBA (πιθανότατα μια μη έγκυρη προδιαγραφή εύρους στο στοιχείο ελέγχου RefEdit), ο κώδικας μεταβαίνει στην ετικέτα BadRange και εμφανίζεται ένα πλαίσιο μηνύματος. Το παράθυρο διαλόγου παραμένει ανοιχτό, ώστε ο χρήστης να μπορεί να επιλέξει άλλη περιοχή.
Εάν η επιλογή μιας περιοχής επιλεγμένης από τον χρήστη είναι η μόνη λειτουργία που εκτελείται από το UserForm σας, μπορείτε να απλοποιήσετε τα πράγματα χρησιμοποιώντας τη μέθοδο Application InputBox.