Funkcija VBA InputBox yra naudinga norint gauti vieną informaciją, kurią vartotojas įvedė „Excle 2016“. Ta informacija gali būti reikšmė, teksto eilutė ar net diapazono adresas. Tai gera alternatyva kuriant UserForm, kai reikia gauti tik vieną reikšmę.
InputBox sintaksė
Štai supaprastinta InputBox funkcijos sintaksė:
Įvesties laukelis (prompt[, title][, default])
Funkcija InputBox priima čia išvardytus argumentus.
Argumentas |
Ką Tai Įtakoja |
Raginimas |
Įvesties laukelyje rodomas tekstas |
Pavadinimas |
Tekstas, rodomas įvesties laukelio pavadinimo juostoje
(pasirenkama) |
Numatytas |
Numatytoji naudotojo įvesties reikšmė (pasirenkama) |
„InputBox“ pavyzdys
Štai teiginys, rodantis, kaip galite naudoti funkciją InputBox:
TheName = InputBox ("Koks tavo vardas?", "Sveikinimai")
Kai vykdote šį VBA teiginį, „Excel“ rodo šį dialogo langą. Atkreipkite dėmesį, kad šiame pavyzdyje naudojami tik pirmieji du argumentai ir nepateikiama numatytoji reikšmė. Kai vartotojas įveda reikšmę ir spusteli Gerai, kodas priskiria reikšmę kintamajam TheName.
Funkcija InputBox rodo šį dialogo langą.
Šiame pavyzdyje naudojamas trečiasis argumentas ir pateikiama numatytoji reikšmė. Numatytoji reikšmė yra „Excel“ saugomas vartotojo vardas (programos objekto ypatybė UserName).
Sub GetName()
Dim TheName As String
TheName = InputBox ("Koks tavo vardas?", _
„Sveikinimai“, programa. Vartotojo vardas)
Pabaigos sub
Įvesties laukelyje visada rodomas mygtukas Atšaukti. Jei vartotojas spusteli Atšaukti, funkcija InputBox grąžina tuščią eilutę.
VBA funkcija „InputBox“ visada grąžina eilutę, taigi, jei jums reikia gauti reikšmę, jūsų kodas turi atlikti papildomą patikrinimą. Šiame pavyzdyje skaičiui gauti naudojama funkcija InputBox. Jis naudoja funkciją IsNumeric, kad patikrintų, ar eilutė yra skaičius. Jei eilutėje yra skaičius, viskas gerai. Jei vartotojo įrašas negali būti interpretuojamas kaip skaičius, kodas rodo pranešimo laukelį.
Sub AddSheets ()
Pritemdyti raginimą kaip eilutę
Pritemdyta antraštė kaip eilutė
Dim DefValue As Long
Dim NumSheets As String
Prompt = "Kiek lapų norite pridėti?"
Antraštė = „Pasakyk man…“
Numatytoji vertė = 1
NumSheets = įvesties laukelis (prompt, antraštė, numatytoji vertė)
Jei „NumSheets“ = „“ Tada išeikite iš antrinės dalies „Atšaukta“.
Jei IsSkaičius(SkaičiųSheets) Tada
Jei NumSheets > 0 Tada Sheets.Add Count:=NumSheets
Kitas
MsgBox „Neteisingas numeris“
Pabaiga, jei
Pabaigos sub
Patikrinkite dialogo langą, kurį sukuria ši rutina.
Kitas funkcijos InputBox naudojimo pavyzdys.
Kitas „InputBox“ tipas
Čia pateikta informacija taikoma VBA „InputBox“ funkcijai. Panašu, kad „Microsoft“ mėgsta painiavą, todėl jūs taip pat turite prieigą prie „InputBox“ metodo , kuris yra programos objekto metodas.
Vienas didelis programos įvesties laukelio metodo pranašumas yra tas, kad jūsų kodas gali paraginti pasirinkti diapazoną. Tada vartotojas gali pasirinkti diapazoną darbalapyje, pažymėdamas langelius. Štai trumpas pavyzdys, raginantis vartotoją pasirinkti diapazoną:
Sub GetRange()
Dim Rng As Range
Įvykus klaidai, tęskite toliau
Nustatyti Rng = Application.InputBox _
(prompt:=„Nurodykite diapazoną:“, Tipas:=8)
Jei Rng yra nieko, išeikite iš Sub
MsgBox „Jūs pasirinkote diapazoną“ & Rng.Address
Pabaigos sub
Štai kaip atrodo.
Norėdami gauti diapazoną, naudokite Application InputBox metodą.
Šiame paprastame pavyzdyje kodas nurodo vartotojui pasirinkto diapazono adresą. Realiame gyvenime jūsų kodas iš tikrųjų būtų naudingas pasirinktam diapazonui. Puikus šio pavyzdžio dalykas yra tai, kad „Excel“ rūpinasi klaidų tvarkymu. Jei įvesite ką nors, kas nėra diapazonas, „Excel“ apie tai praneš ir leis bandyti dar kartą.
Application.InputBox metodas yra panašus į VBA funkciją InputBox, tačiau jis taip pat turi tam tikrų skirtumų. Išsamios informacijos ieškokite pagalbos sistemoje.