Η συνάρτηση VBA InputBox είναι χρήσιμη για τη λήψη ενός μόνο τμήματος πληροφοριών που πληκτρολογεί ο χρήστης στο Excle 2016. Αυτές οι πληροφορίες θα μπορούσαν να είναι μια τιμή, μια συμβολοσειρά κειμένου ή ακόμα και μια διεύθυνση εύρους. Αυτή είναι μια καλή εναλλακτική για την ανάπτυξη ενός UserForm όταν χρειάζεται να λάβετε μόνο μία τιμή.
Σύνταξη InputBox
Ακολουθεί μια απλοποιημένη έκδοση της σύνταξης της συνάρτησης InputBox:
InputBox(προτροπή[, τίτλος][, προεπιλογή])
Η συνάρτηση InputBox δέχεται τα ορίσματα που αναφέρονται εδώ.
Διαφωνία |
Τι επηρεάζει |
Προτροπή |
Το κείμενο που εμφανίζεται στο πλαίσιο εισαγωγής |
Τίτλος |
Το κείμενο που εμφανίζεται στη γραμμή τίτλου του πλαισίου εισαγωγής
(προαιρετικό) |
Προκαθορισμένο |
Η προεπιλεγμένη τιμή για την εισαγωγή του χρήστη (προαιρετικό) |
Ένα παράδειγμα InputBox
Ακολουθεί μια δήλωση που δείχνει πώς μπορείτε να χρησιμοποιήσετε τη συνάρτηση InputBox:
TheName = InputBox ("Πώς είναι το όνομά σου;", "Χαιρετίσματα")
Όταν εκτελείτε αυτήν τη δήλωση VBA, το Excel εμφανίζει αυτό το παράθυρο διαλόγου. Σημειώστε ότι αυτό το παράδειγμα χρησιμοποιεί μόνο τα δύο πρώτα ορίσματα και δεν παρέχει μια προεπιλεγμένη τιμή. Όταν ο χρήστης εισάγει μια τιμή και κάνει κλικ στο OK, ο κωδικός εκχωρεί την τιμή στη μεταβλητή TheName.
Η συνάρτηση InputBox εμφανίζει αυτό το πλαίσιο διαλόγου.
Το παρακάτω παράδειγμα χρησιμοποιεί το τρίτο όρισμα και παρέχει μια προεπιλεγμένη τιμή. Η προεπιλεγμένη τιμή είναι το όνομα χρήστη που αποθηκεύεται από το Excel (η ιδιότητα Όνομα χρήστη του αντικειμένου εφαρμογής).
Sub GetName()
Dim TheName As String
TheName = InputBox ("Πώς είναι το όνομά σου;", _
"Χαιρετισμοί", Application.UserName)
End Sub
Το InputBox εμφανίζει πάντα ένα κουμπί Ακύρωση. Εάν ο χρήστης κάνει κλικ στο Cancel, η συνάρτηση InputBox επιστρέφει μια κενή συμβολοσειρά.
Η συνάρτηση InputBox του VBA επιστρέφει πάντα μια συμβολοσειρά, οπότε αν χρειάζεται να λάβετε μια τιμή, ο κώδικάς σας πρέπει να κάνει κάποιο πρόσθετο έλεγχο. Το παρακάτω παράδειγμα χρησιμοποιεί τη συνάρτηση InputBox για να πάρει έναν αριθμό. Χρησιμοποιεί τη συνάρτηση IsNumeric για να ελέγξει αν η συμβολοσειρά είναι αριθμός. Εάν η συμβολοσειρά περιέχει έναν αριθμό, όλα είναι εντάξει. Εάν η καταχώριση του χρήστη δεν μπορεί να ερμηνευτεί ως αριθμός, ο κωδικός εμφανίζει ένα πλαίσιο μηνύματος.
Sub AddSheets()
Dim Prompt As String
Dim Caption As String
Dim DefValue As Long
Εξασθενίστε τα NumSheets ως συμβολοσειρά
Προτροπή = "Πόσα φύλλα θέλετε να προσθέσετε;"
Λεζάντα = «Πες μου…»
DefValue = 1
NumSheets = InputBox (Prompt, Caption, DefValue)
Εάν NumSheets = "" Τότε η έξοδος από το Sub 'Ακυρώθηκε
Αν είναι Numeric(NumSheets) Τότε
Αν NumSheets > 0, then Sheets.Add Count:=NumSheets
Αλλού
MsgBox "Μη έγκυρος αριθμός"
Τέλος εαν
End Sub
Ελέγξτε το πλαίσιο διαλόγου που δημιουργεί αυτή η ρουτίνα.
Ένα άλλο παράδειγμα χρήσης της συνάρτησης InputBox.
Ένας άλλος τύπος InputBox
Οι πληροφορίες που παρουσιάζονται εδώ ισχύουν για τη συνάρτηση InputBox της VBA. Η Microsoft φαίνεται να λατρεύει τη σύγχυση, επομένως έχετε επίσης πρόσβαση στη μέθοδο InputBox , η οποία είναι μια μέθοδος του αντικειμένου Εφαρμογή.
Ένα μεγάλο πλεονέκτημα της χρήσης της μεθόδου Application InputBox είναι ότι ο κώδικάς σας μπορεί να ζητήσει μια επιλογή εύρους. Στη συνέχεια, ο χρήστης μπορεί να επιλέξει την περιοχή στο φύλλο εργασίας επισημαίνοντας τα κελιά. Ακολουθεί ένα γρήγορο παράδειγμα που προτρέπει τον χρήστη να επιλέξει μια περιοχή:
Sub GetRange()
Dim Rng As Range
Σφάλμα Συνέχιση Επόμενο
Ορισμός Rng = Application.InputBox _
(προτροπή:="Καθορισμός εύρους:", Πληκτρολογήστε:=8)
Εάν το Rng δεν είναι τίποτα, τότε βγείτε από το Sub
MsgBox "Επιλέξατε εύρος" & Rng.Address
End Sub
Έτσι φαίνεται.
Χρησιμοποιώντας τη μέθοδο Application InputBox για να λάβετε ένα εύρος.
Σε αυτό το απλό παράδειγμα, ο κώδικας λέει στον χρήστη τη διεύθυνση της περιοχής που επιλέχθηκε. Στην πραγματική ζωή, ο κώδικάς σας θα έκανε πραγματικά κάτι χρήσιμο με το επιλεγμένο εύρος. Ένα ωραίο πράγμα σε αυτό το παράδειγμα είναι ότι το Excel φροντίζει για τον χειρισμό σφαλμάτων. Εάν εισαγάγετε κάτι που δεν είναι εύρος, το Excel σας ενημερώνει σχετικά και σας επιτρέπει να δοκιμάσετε ξανά.
Η μέθοδος Application.InputBox είναι παρόμοια με τη συνάρτηση InputBox της VBA, αλλά έχει επίσης κάποιες διαφορές. Ελέγξτε το σύστημα Βοήθειας για πλήρεις λεπτομέρειες.