Funktionen VBA InputBox är användbar för att erhålla en enskild information som skrivits av användaren i Excle 2016. Den informationen kan vara ett värde, en textsträng eller till och med en intervalladress. Detta är ett bra alternativ till att utveckla ett UserForm när du bara behöver få ett värde.
InputBox-syntax
Här är en förenklad version av syntaxen för InputBox-funktionen:
InputBox(prompt[, titel][, standard])
InputBox-funktionen accepterar argumenten som listas här.
| Argument |
Vad det påverkar |
| Prompt |
Texten som visas i inmatningsrutan |
| Titel |
Texten som visas i inmatningsrutans namnlist
(valfritt) |
| Standard |
Standardvärdet för användarens inmatning (valfritt) |
Ett InputBox-exempel
Här är ett uttalande som visar hur du kan använda InputBox-funktionen:
TheName = InputBox("Vad heter du?", "Hälsningar")
När du kör den här VBA-satsen visar Excel den här dialogrutan. Observera att det här exemplet bara använder de två första argumenten och inte tillhandahåller ett standardvärde. När användaren anger ett värde och klickar på OK, tilldelar koden värdet till variabeln TheName.

InputBox-funktionen visar denna dialogruta.
Följande exempel använder det tredje argumentet och ger ett standardvärde. Standardvärdet är användarnamnet som lagras av Excel (Programobjektets UserName-egenskap).
Sub GetName()
Dimma namnet som sträng
TheName = InputBox("Vad heter du?", _
"Hälsningar", Application.UserName)
Avsluta Sub
InputBox visar alltid en Avbryt-knapp. Om användaren klickar på Avbryt returnerar InputBox-funktionen en tom sträng.
VBA:s InputBox-funktion returnerar alltid en sträng, så om du behöver få ett värde måste din kod göra en extra kontroll. Följande exempel använder InputBox-funktionen för att få ett nummer. Den använder funktionen IsNumeric för att kontrollera om strängen är ett nummer. Om strängen innehåller ett nummer är allt bra. Om användarens inmatning inte kan tolkas som ett nummer, visar koden en meddelanderuta.
Sub AddSheets()
Dim prompt som sträng
Nedtonad bildtext som sträng
Dim DefValue As Long
Dimma NumSheets som sträng
Prompt = "Hur många ark vill du lägga till?"
Bildtext = "Berätta för mig..."
DefValue = 1
NumSheets = InputBox(Prompt, Caption, DefValue)
Om NumSheets = ““ Avsluta Sub 'Canceled
Om IsNumeric(NumSheets) Då
Om NumSheets > 0 Då Sheets.Add Count:=NumSheets
Annan
MsgBox "Ogiltigt nummer"
Avsluta om
Avsluta Sub
Kolla in dialogrutan som den här rutinen producerar.

Ett annat exempel på att använda InputBox-funktionen.
En annan typ av InputBox
Informationen som presenteras här gäller VBA:s InputBox-funktion. Microsoft verkar älska förvirring, så du har också tillgång till InputBox- metoden , som är en metod för Application-objektet.
En stor fördel med att använda Application InputBox-metoden är att din kod kan begära ett urval av intervall. Användaren kan sedan välja intervallet i kalkylbladet genom att markera cellerna. Här är ett snabbt exempel som uppmanar användaren att välja ett intervall:
Sub GetRange()
Dim Rng As Range
Vid fel Resume Next
Set Rng = Application.InputBox _
(prompt:=”Ange ett intervall:”, Skriv:=8)
Om Rng är ingenting, avsluta Sub
MsgBox "Du valde intervall " & Rng.Address
Avsluta Sub
Så här ser det ut.

Använder metoden Application InputBox för att få ett intervall.
I det här enkla exemplet berättar koden för användaren adressen till det intervall som valdes. I verkligheten skulle din kod faktiskt göra något användbart med det valda intervallet. En trevlig sak med detta exempel är att Excel tar hand om felhanteringen. Om du anger något som inte är ett intervall, berättar Excel om det och låter dig försöka igen.
Metoden Application.InputBox liknar VBA:s InputBox-funktion, men den har också vissa skillnader. Kontrollera hjälpsystemet för fullständig information.