VBA InputBox - Λήψη εισόδου από έναν χρήστη σε μακροεντολή - Παραδείγματα κώδικα VBA

Αυτό το σεμινάριο θα δείξει πώς μπορείτε να λάβετε πληροφορίες από έναν χρήστη με το VBA Input Box.

ο Κιβώτιο εισόδου VBA μας επιτρέπει να παροτρύνουμε τον χρήστη να εισάγει πληροφορίες. Οι πληροφορίες μπορούν στη συνέχεια να χρησιμοποιηθούν στον κώδικα VBA ή σε ένα φύλλο εργασίας του Excel.

Το κουτί εισόδου VBA με μεταβλητή

Μπορούμε να δηλώσουμε μια μεταβλητή στον κώδικα VBA, η οποία στη συνέχεια αποθηκεύει τις πληροφορίες που πληκτρολογούνται στο πλαίσιο εισόδου. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε αυτήν τη μεταβλητή στον κώδικά μας.

Ανάλογα με τον τύπο των πληροφοριών που θέλουμε να επιστρέφονται από το πλαίσιο εισαγωγής, μπορούμε να δηλώσουμε έναν συγκεκριμένο τύπο μεταβλητής είτε για να επιστρέψει κείμενο (συμβολοσειρά ή μεταβλητή) είτε για να επιστρέψει έναν αριθμό (ακέραιος, μακρύς, διπλός ή ένας μεταβλητός).

Η μεταβλητή συμβολοσειράς με ένα πλαίσιο εισαγωγής

Δείτε πώς μπορείτε να δημιουργήσετε ένα InputBox όπου τα δεδομένα επιστρέφονται σε μια μεταβλητή συμβολοσειράς.

123 Dim strInput as StringstrInput = InputBox ("This is my InputBox", "MyInputTitle", "Enter your input text ΕΔΩ")

Σημειώστε πρώτα δηλώνουμε μια μεταβλητή. Σε αυτήν τη μεταβλητή θα εκχωρηθεί η τιμή που εισάγει ο χρήστης. Χρησιμοποιήσαμε μεταβλητό τύπο συμβολοσειράς προκειμένου το πλαίσιο εισαγωγής να δέχεται συμβολοσειρές κειμένου (που περιλαμβάνει τυχόν άλφα αριθμητικούς χαρακτήρες).

Η μεταβλητή αριθμού με ένα πλαίσιο εισαγωγής

Εάν δηλώσετε μια μεταβλητή αριθμού, θα χρειαστεί να εισαγάγετε έναν αριθμό μόνο στο πλαίσιο εισαγωγής.

12 Dim iInput As IntegeriInput = InputBox ("Παρακαλώ εισάγετε έναν αριθμό", "Δημιουργία αριθμού τιμολογίου", 1)

Αρχικά δηλώνουμε την μεταβλητή του αριθμού ως ακέραιη μεταβλητή. Στη συνέχεια, μπορούμε επίσης να βάλουμε μια προεπιλεγμένη τιμή 1 στο πλαίσιο εισαγωγής.

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

Λήψη εισόδου από έναν χρήστη

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

Ο ακόλουθος κώδικας κάνει τρία πράγματα:

1. Προτρέπει για εισαγωγή με ένα InputBox και το εκχωρεί σε μια μεταβλητή

2. Επαληθεύει την είσοδο, διαφορετικά εξέρχεται από το δευτερεύον

3. Επιστρέφει την είσοδο σε ένα πλαίσιο μηνυμάτων

12345678910111213 Public Sub MyInputBox ()Dim MyInput As StringMyInput = InputBox ("This is my InputBox", "MyInputTitle", "Enter your input text ΕΔΩ")Εάν MyInput = "Εισαγάγετε το κείμενο εισαγωγής σας ΕΔΩ" My MyInput = "" ΤότεΈξοδος SubΤέλος εανMsgBox "Το κείμενο από το MyInputBox είναι" & MyInputΤέλος υπο

Επιστροφή της εισόδου σε ένα φύλλο Excel

Μπορείτε να επιστρέψετε την είσοδο που πληκτρολογείτε σε ένα πλαίσιο εισαγωγής σε ένα συγκεκριμένο κελί στο φύλλο Excel σας.

1 Εύρος ("P1") = InputBox ("Πληκτρολογήστε το όνομά σας", "Εισαγάγετε όνομα", "Εισαγάγετε το όνομα ΕΔΩ")

Μπορούμε επίσης να επιστρέψουμε δεδομένα εισόδου σε ένα φύλλο Excel χρησιμοποιώντας μια μεταβλητή.

12345678910 Sub EnterNumber ()Στο Σφάλμα Συνέχιση ΕπόμενοDim dblAmount As DoubledblAmount = InputBox ("Εισαγάγετε το απαιτούμενο ποσό", "Εισαγωγή ποσού")Αν dblAmount 0 ΤότεΕύρος ("A1") = dblAmountΑλλούMsgBox "Δεν καταχωρίσατε αριθμό!"Τέλος εανΤέλος υπο

Στο παραπάνω παράδειγμα, απαιτείται να εισαγάγουμε έναν αριθμό. Εάν εισαγάγουμε έναν αριθμό, τότε η μεταβλητή dblAmount θα βάλει τον αριθμό στο φύλλο Excel στο κελί A1. Ωστόσο, εάν δεν εισαγάγουμε έναν αριθμό, τότε ένα πλαίσιο μηνυμάτων θα μας πει ότι δεν εισαγάγαμε έναν αριθμό και τίποτα δεν θα μπει στο κελί Α1.

Χρήση του VBA InputBox στο Access VBA

Το πλαίσιο εισαγωγής VBA λειτουργεί ακριβώς με τον ίδιο τρόπο στην Access όπως και στο Excel όταν επιστρέφετε την είσοδο χρήστη με τη μορφή ενός πλαισίου μηνύματος.

Ωστόσο, εάν θέλετε να επιστρέψετε την είσοδο χρήστη στη βάση δεδομένων, θα πρέπει να χρησιμοποιήσετε το αντικείμενο Recordset και όχι το αντικείμενο εύρους όπως χρησιμοποιείται στο Excel.

1234567891011121314 Sub EnterInvoiceNumber ()Dim dbs As DatabaseDim rst As RecordsetΟρίστε dbs = CurrentDbΡύθμιση rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)Με πρώτη.Προσθεσε νεο! InvNo = InputBox ("Παρακαλώ εισάγετε τον αριθμό τιμολογίου", "ΠΑΡΑΓΩΓΗ ΑΡΙΘΜΟΥ ΤΙΜΟΛΟΓΙΟΥ", 1).ΕκσυγχρονίζωΤέλος μεπρώτα. ΚλείσιμοΡύθμιση rst = ΤίποταΟρισμός dbs = ΤίποταΤέλος υπο

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

wave wave wave wave wave