VBA InputBox - Bevitel a felhasználótól a makróban - Példák a VBA kódokra

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

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave