VBA InputBox-funktionen er nyttig til at få et enkelt stykke information indtastet af brugeren i Excle 2016. Disse oplysninger kan være en værdi, en tekststreng eller endda en områdeadresse. Dette er et godt alternativ til at udvikle en UserForm, når du kun skal have én værdi.
InputBox syntaks
Her er en forenklet version af syntaksen for InputBox-funktionen:
InputBox(prompt[, titel][, standard])
InputBox-funktionen accepterer de her anførte argumenter.
Argument |
Hvad det påvirker |
Hurtig |
Teksten vises i inputfeltet |
Titel |
Teksten vist i inputfeltets titellinje
(valgfrit) |
Standard |
Standardværdien for brugerens input (valgfrit) |
Et InputBox eksempel
Her er en erklæring, der viser, hvordan du kan bruge InputBox-funktionen:
TheName = InputBox("Hvad er dit navn?", "Hilsen")
Når du udfører denne VBA-sætning, viser Excel denne dialogboks. Bemærk, at dette eksempel kun bruger de to første argumenter og ikke angiver en standardværdi. Når brugeren indtaster en værdi og klikker på OK, tildeler koden værdien til variablen TheName.
InputBox-funktionen viser denne dialogboks.
Følgende eksempel bruger det tredje argument og giver en standardværdi. Standardværdien er det brugernavn, der er gemt af Excel (Programobjektets UserName-egenskab).
Sub GetName()
Dæmp Navnet som streng
TheName = InputBox(“Hvad er dit navn?”, _
"Hilsen", Application.UserName)
Slut Sub
Indtastningsboksen viser altid en Annuller-knap. Hvis brugeren klikker på Annuller, returnerer InputBox-funktionen en tom streng.
VBA's InputBox-funktion returnerer altid en streng, så hvis du har brug for at få en værdi, skal din kode foretage en ekstra kontrol. Følgende eksempel bruger InputBox-funktionen til at få et tal. Den bruger funktionen IsNumeric til at kontrollere, om strengen er et tal. Hvis strengen indeholder et tal, er alt i orden. Hvis brugerens indtastning ikke kan tolkes som et tal, viser koden en beskedboks.
Sub AddSheets()
Dim prompt som streng
Dim billedtekst som streng
Dim DefValue As Long
Dim NumSheets Som streng
Prompt = "Hvor mange ark vil du tilføje?"
Billedtekst = "Fortæl mig..."
DefValue = 1
NumSheets = InputBox(Prompt, Caption, DefValue)
Hvis NumSheets = ““ Afslut Sub 'Annulleret
Hvis IsNumeric(NumSheets) Så
Hvis NumSheets > 0 Så Sheets.Add Count:=NumSheets
Andet
MsgBox "Ugyldigt nummer"
Afslut Hvis
Slut Sub
Tjek dialogboksen, som denne rutine producerer.
Endnu et eksempel på brug af InputBox-funktionen.
En anden type inputboks
De oplysninger, der præsenteres her, gælder for VBA's InputBox-funktion. Microsoft lader til at elske forvirring, så du har også adgang til InputBox- metoden , som er en metode til Application-objektet.
En stor fordel ved at bruge Application InputBox-metoden er, at din kode kan bede om et områdevalg. Brugeren kan derefter vælge området i regnearket ved at fremhæve cellerne. Her er et hurtigt eksempel, der beder brugeren om at vælge et område:
Under GetRange()
Dim Rng As Range
Ved fejl Genoptag Næste
Indstil Rng = Application.InputBox _
(prompt:="Angiv et område:", Type:=8)
Hvis Rng ikke er noget, skal du afslutte Sub
MsgBox "Du valgte område " & Rng.Address
Slut Sub
Sådan ser det ud.
Brug af Application InputBox-metoden til at få et interval.
I dette simple eksempel fortæller koden brugeren adressen på det udvalgte område. I det virkelige liv ville din kode faktisk gøre noget nyttigt med det valgte område. En god ting ved dette eksempel er, at Excel tager sig af fejlhåndteringen. Hvis du indtaster noget, der ikke er et interval, fortæller Excel dig om det og lader dig prøve igen.
Application.InputBox-metoden ligner VBA's InputBox-funktion, men den har også nogle forskelle. Tjek hjælpesystemet for fuldstændige detaljer.