Ta vadnica bo pokazala, kako od uporabnika vnesti vnosno polje VBA.
The VBA polje za vnos nam omogoča, da uporabnika pozovemo, da vnese podatke. Podatke lahko nato uporabite v naši kodi VBA ali v Excelovem delovnem listu.
Vhodno polje VBA s spremenljivko
V kodi VBA lahko razglasimo spremenljivko, ki nato shrani podatke, ki so vneseni v polje za vnos. To spremenljivko lahko nato uporabimo v kodi.
Odvisno od vrste informacij, ki jih želimo vrniti iz vnosnega polja, lahko razglasimo določeno vrsto spremenljivke tako, da vrne besedilo (spremenljivko niza ali variante) ali pa vrne številko (celo število, dolgo, dvojno ali enojno spremenljivko).
Spremenljivka niza z vnosnim poljem
Tukaj je, kako lahko ustvarite InputBox, kjer se podatki vrnejo v spremenljivko niza.
123 | Zatemni strInput kot nizstrInput = InputBox ("To je moj InputBox", "MyInputTitle", "Vnesite vnosno besedilo TUKAJ") |
Najprej opazimo, da razglasimo spremenljivko. Tej spremenljivki bo dodeljena vrednost, ki jo vnese uporabnik. Uporabili smo spremenljivko tipa String, da je polje za vnos sprejelo besedilne nize (ki vključujejo vse alfanumerične znake).
Številčna spremenljivka z vnosnim poljem
Če razglasite spremenljivko številke, boste morali številko vnesti samo v polje za vnos.
12 | Zatemni iInput kot celo številoiInput = InputBox ("Prosimo, vnesite številko", "Ustvari številko računa", 1) |
Najprej razglasimo spremenljivko številko kot spremenljivko celega števila. Nato lahko vnesemo tudi privzeto vrednost 1 v polje za vnos.
Če bi namesto številke vnesli niz in nato kliknili V redu, bi dobili napako pri neskladju vrste, saj spremenljivka števila ne sprejema niza.
Pridobite vnos od uporabnika
Tu je še en primer uporabe najbolj priljubljenih funkcij polja InputBox.
Naslednja koda naredi tri stvari:
1. Zahteva vnos z InputBoxom in ga dodeli spremenljivki
2. Preveri vnos, v nasprotnem primeru zapusti podpogon
3. Vrne vnos v polju za sporočila
12345678910111213 | Javni podvmesnik MyInputBox ()Zatemni MyInput As StringMyInput = InputBox ("To je moj InputBox", "MyInputTitle", "Vnesite vnosno besedilo TUKAJ")Če MyInput = "Vnesite vnosno besedilo TUKAJ" Ali MyInput = "" PotemZapri podKonec ČeMsgBox "Besedilo iz MyInputBox je" & MyInputEnd Sub |
Vrnitev vnosa v Excelov list
Vnos, ki ga vnesete v polje za vnos, lahko vrnete v določeno celico v Excelovem listu.
1 | Obseg ("P1") = InputBox ("Vnesite svoje ime", "Vnesite ime", "Vnesite ime TUKAJ") |
Vhodne podatke lahko vrnemo tudi v Excelov list s spremenljivko.
12345678910 | Sub EnterNumber ()On Napaka Nadaljuj NaprejZatemni dblOznači kot dvojnodblAmount = InputBox ("Vnesite zahtevani znesek", "Vnesite znesek")Če je dblAmount 0, potemObseg ("A1") = dblAmountSicer paMsgBox "Niste vnesli številke!"Konec ČeEnd Sub |
V zgornjem primeru moramo vnesti številko. Če vnesemo številko, potem spremenljivko dblAmount bo vnesel številko v Excelov list na celico A1. Če pa ne vnesemo številke, nam bo polje s sporočilom sporočilo, da številke nismo vnesli in v celico A1 ne bo nič.
Uporaba VBA InputBox v Access VBA
Vnosno polje VBA deluje v programu Access na enak način kot v Excelu, ko uporabniški vnos vrne v obliki polja s sporočilom.
Če pa želite vrniti uporabniški vnos v bazo podatkov, bi morali uporabiti objekt Recordset namesto predmeta Range, kot se uporablja v Excelu.
1234567891011121314 | Sub EnterInvoiceNumber ()Zatemni dbs kot bazo podatkovZatemni najprej kot zapis zapisaNastavite dbs = CurrentDbNastavi rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)S prvim.Dodaj novo! InvNo = InputBox ("Vnesite številko računa", "GENERACIJA ŠTEVILKE RAČUNA", 1).NadgradnjaKončaj snajprej ZapriNastavi rst = NičNastavi dbs = ničEnd Sub |