Πίνακας περιεχομένων:
Βίντεο: Survey123 for ArcGIS XLSForm Tutorial 2 of 5 Creating Selection Questions in a Survey 2025
Η συνάρτηση VBA InputBox είναι χρήσιμη για την απόκτηση μιας μόνο πληροφορίας που πληκτρολογήθηκε από τον χρήστη στο Excle 2016. Οι πληροφορίες αυτές θα μπορούσαν να είναι μια τιμή, μια συμβολοσειρά κειμένου ή ακόμα και ένα εύρος διεύθυνση. Αυτή είναι μια καλή εναλλακτική λύση για την ανάπτυξη ενός UserForm όταν χρειάζεται να έχετε μόνο μία τιμή.
Σύνταξη InputBox
Εδώ είναι μια απλοποιημένη έκδοση της σύνταξης της συνάρτησης InputBox:
InputBox (prompt [title] [default])
Η συνάρτηση InputBox δέχεται τα παρατιθέμενα εδώ.
Παράδειγμα InputBox
TheName = InputBox ("Ποιο είναι το όνομά σας", "Χαιρετισμοί")
Όταν εκτελείτε αυτήν τη δήλωση VBA, το Excel εμφανίζει αυτό το παράθυρο διαλόγου. Παρατηρήστε ότι το παράδειγμα αυτό χρησιμοποιεί μόνο τα δύο πρώτα επιχειρήματα και δεν παρέχει μια προεπιλεγμένη τιμή. Όταν ο χρήστης εισαγάγει μια τιμή και κάνει κλικ στο OK, ο κώδικας εκχωρεί την τιμή στη μεταβλητή TheName.
Το ακόλουθο παράδειγμα χρησιμοποιεί το τρίτο όρισμα και παρέχει μια προεπιλεγμένη τιμή. Η προεπιλεγμένη τιμή είναι το όνομα χρήστη που έχει αποθηκευτεί από το Excel (η ιδιότητα UserName του αντικειμένου εφαρμογής).
Sub GetName () Dim TheName ως String TheName = InputBox ("Ποιο είναι το όνομά σας;", _ "Χαιρετισμοί", Εφαρμογή Όνομα_χρήστη) End Sub
Το InputBox εμφανίζει πάντα ένα κουμπί Cancel. Εάν ο χρήστης κάνει κλικ στην επιλογή Ακύρωση, η λειτουργία InputBox επιστρέφει μια κενή συμβολοσειρά.Η συνάρτηση InputBox της VBA επιστρέφει πάντα μια συμβολοσειρά, οπότε αν χρειαστεί να πάρετε μια τιμή, ο κωδικός σας πρέπει να κάνει μερικούς πρόσθετους ελέγχους. Το ακόλουθο παράδειγμα χρησιμοποιεί τη λειτουργία InputBox για να πάρει έναν αριθμό. Χρησιμοποιεί τη λειτουργία IsNumeric για να ελέγξει εάν η συμβολοσειρά είναι ένας αριθμός. Εάν η συμβολοσειρά περιέχει έναν αριθμό, όλα είναι καλά. Εάν η καταχώρηση του χρήστη δεν μπορεί να ερμηνευτεί ως αριθμός, ο κώδικας εμφανίζει ένα πλαίσιο μηνύματος.
Sub AddSheets () Prom Prompt ως συμβολοσειρά Dim υπότιτλος ως String Dim DefValue ως Long DimSheets Dim ως Prompt String = "Πόσα φύλλα θέλετε να προσθέσετε; "Caption =" Πείτε μου … "DefValue = 1 NumSheets = InputBox (Prompt, Caption, DefValue) Εάν NumSheets =" "Έπειτα Exit Sub ' Αν ακυρώθηκε Εάν IsNumeric (NumSheets) Στη συνέχεια, εάν NumSheets> 0 Στη συνέχεια φύλλα. Προσθέστε Count: = NumSheets Else MsgBox "Μη έγκυρος αριθμός" End If End Sub
Ανατρέξτε στο παράθυρο διαλόγου που παράγει αυτή η ρουτίνα.
Ένα άλλο παράδειγμα χρήσης της λειτουργίας InputBox.
Ένας άλλος τύπος InputBox
Ένα μεγάλο πλεονέκτημα της χρήσης της μεθόδου Application InputBox είναι ότι ο κώδικας μπορεί να σας ζητήσει μια επιλογή εύρους τιμών. Ο χρήστης μπορεί στη συνέχεια να επιλέξει την περιοχή στο φύλλο εργασίας επισημαίνοντας τα κελιά. Ακολουθεί ένα γρήγορο παράδειγμα που παρακινεί τον χρήστη να επιλέξει μια περιοχή:
Έτσι φαίνεται.
Χρησιμοποιώντας τη μέθοδο InputBox εφαρμογής για να πάρετε μια σειρά.Σε αυτό το απλό παράδειγμα, ο κώδικας λέει στον χρήστη τη διεύθυνση του εύρους που επιλέχθηκε. Στην πραγματική ζωή, ο κώδικας θα κάνει πραγματικά κάτι χρήσιμο με την επιλεγμένη περιοχή. Ένα ωραίο πράγμα για αυτό το παράδειγμα είναι ότι το Excel φροντίζει για το χειρισμό σφαλμάτων. Αν εισάγετε κάτι που δεν είναι εύρος, το Excel σας ενημερώνει και σας αφήνει να δοκιμάσετε ξανά.