Ez az oktatóanyag bemutatja, hogyan lehet bevitelt szerezni a felhasználótól a VBA beviteli mezővel.
Az VBA bemeneti doboz lehetővé teszi számunkra, hogy információ bevitelére kérjük a felhasználót. Az információkat ezután felhasználhatjuk a VBA kódunkban vagy egy Excel munkalapon.
A VBA bemeneti doboz változóval
A VBA kódunkban deklarálhatunk egy változót, amely ezután tárolja a beviteli mezőbe beírt információkat. Ezt a változót használhatjuk a kódunkban.
Attól függően, hogy milyen típusú információkat szeretnénk visszaadni a beviteli mezőből, deklarálhatunk egy adott típusú változót a szöveg visszaadására (karakterlánc vagy változatváltozó), vagy egy szám visszaadására (egész, hosszú, kettős vagy egyetlen változó).
A karakterlánc változó beviteli mezővel
Így hozhat létre egy InputBox -ot, ahol az adatok egy string változóba kerülnek vissza.
123 | Dim strInput mint karakterláncstrInput = InputBox ("Ez az én InputBox", "MyInputTitle", "Írja be a bevitt szöveget ITT") |
Figyeljük meg először, hogy deklarálunk egy változót. Ez a változó a felhasználó által megadott értékhez lesz rendelve. String változótípust használtunk annak érdekében, hogy a Beviteli mező elfogadja a szöveges karakterláncokat (amely bármilyen alfanumerikus karaktert tartalmaz).
A számváltozó beviteli mezővel
Ha számváltozót deklarál, akkor csak egy számot kell beírnia a beviteli mezőbe.
12 | Dim iInput mint egésziInput = InputBox ("Kérjük, írjon be egy számot", "Számlaszám létrehozása", 1) |
Először a számváltozót egész változónak nyilvánítjuk. Ezután az alapértelmezett 1 értéket is beírhatjuk a beviteli mezőbe.
Ha egy szám helyett egy karakterláncot írnánk be, majd az OK gombra kattintanánk, akkor típuseltérési hibát kapunk, mivel a számváltozó nem fogad el karakterláncot.
Bemenet kérése egy felhasználótól
Íme egy másik példa az InputBox legnépszerűbb funkcióinak felhasználására.
A következő kód három dolgot tesz:
1. Az InputBox bemenetét kéri, és hozzárendeli egy változóhoz
2. Ellenőrzi a bemenetet, ellenkező esetben kilép az al
3. Visszaadja a bemenetet egy üzenetmezőben
12345678910111213 | Nyilvános albeviteli mező ()Saját bemenet halványítása karakterlánckéntMyInput = InputBox ("Ez az én InputBox", "MyInputTitle", "Írja be a bevitt szöveget ITT")Ha MyInput = "Írja be a bevitt szöveget ITT" Vagy MyInput = "" AkkorKilépés a SubbólVége HaMsgBox "A MyInputBox szövege" & MyInputEnd Sub |
A bemenet visszaállítása Excel táblázatba
A beviteli mezőbe beírt bemenetet visszaadhatja az Excel -lap egy adott cellájába.
1 | Tartomány ("P1") = InputBox ("Kérjük, írja be a nevét", "Írja be a nevét", "Írja be a nevét ITT") |
A bemeneti adatokat egy változó segítségével vissza is adhatjuk egy Excel -táblázatba.
12345678910 | Sub EnterNumber ()Hiba esetén Folytassa a következőtDim dblAmount As DoubledblAmount = InputBox ("Kérjük, adja meg a kívánt összeget", "Adja meg az összeget")Ha dblAmount 0 AkkorTartomány ("A1") = dblAmountMásMsgBox "Nem adott meg számot!"Vége HaEnd Sub |
A fenti példában számot kell megadnunk. Ha számot írunk be, akkor a változót dblAmount beírja a számot az Excel cellába az A1 cellába. Ha azonban nem adunk meg egy számot, akkor egy üzenetmezőben közöljük, hogy nem számot adtunk meg, és semmi sem kerül az A1 cellába.
A VBA InputBox használata az Access VBA -ban
A VBA beviteli mező pontosan ugyanúgy működik az Accessben, mint az Excelben, amikor a felhasználói bevitelt üzenetmező formájában adja vissza.
Ha azonban vissza kívánja adni a felhasználói adatokat az adatbázisba, akkor a Recordset objektumot kell használnia, nem pedig az Excelben használt Range objektumot.
1234567891011121314 | Sub EnterInvoiceNumber ()Dim dbs mint adatbázisDim rst RecordsetkéntÁllítsa be a dbs = CurrentDb értéketÁllítsa be az rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)Az elsővel.Új hozzáadása! InvNo = InputBox ("Kérjük, adja meg a számla számát", "INVOICE NUMBER GENERATION", 1).FrissítésVége ezzelelső. Zárja beSet rst = SemmiSet dbs = SemmiEnd Sub |