Innehållsförteckning:
Video: Excelmakro-skolan, del 1 | Spela in ett eget makro i Excel 2024
VBA InputBox-funktionen är användbar för att få en enda information som skrivits av användaren i Excle 2016. Den informationen kan vara ett värde, en textsträng eller till och med ett intervall adress. Detta är ett bra alternativ för att utveckla en UserForm när du behöver bara ett värde.
InputBox-syntax
Här är en förenklad version av syntaxen för InputBox-funktionen:
InputBox (snabb [titel] [standard])
InputBox-funktionen accepterar argumenten som anges här.
Argument | Vad det påverkar |
---|---|
Snabb | Texten som visas i inmatningsrutan |
Titel | Texten som visas i ingångslådans titelfält
(valfritt) |
Standard | Standardvärdet för användarens ingång (tillval) |
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 utför detta VBA-formulär visar Excel den här dialogrutan. Observera att det här exemplet endast använder de två första argumenten och inte anger ett standardvärde. När användaren anger ett värde och klickar på OK, tilldelas koden värdet till variabeln TheName.
Följande exempel använder det tredje argumentet och ger ett standardvärde. Standardvärdet är användarnamnet som lagras av Excel (egenskapen Användarnamn för Applikationsobjekt).
Sub GetName () Dim TheName As String TheName = InputBox ("Vad heter du?", _ "Greetings", Application. UserName) Avsluta sub
InputBox visar alltid en Avbryt-knapp. Om användaren klickar på Avbryt returnerar funktionen InputBox en tom sträng.
VBA: s InputBox-funktion returnerar alltid en sträng, så om du behöver ett värde måste din kod göra ytterligare kontroll. Följande exempel använder InputBox-funktionen för att få ett nummer. Den använder IsNumeric-funktionen för att kontrollera om strängen är ett tal. Om strängen innehåller ett nummer är allt bra. Om användarens inmatning inte kan tolkas som ett nummer visar koden en meddelandefält.
Sub AddSheets () Dimprompt som strängdimma bildtext som strängdimma DefValue så länge Dim NumSheets As String Prompt = "Hur många ark vill du lägga till? "Caption =" Berätta för mig … "DefValue = 1 NumSheets = InputBox (Prompt, Caption, DefValue) Om NumSheets =" "Avsluta sedan Sub & Avbruten Om IsNumeric (NumSheets) Sedan Om NumSheets> 0 Then Sheet. Lägg till räkning: = NumSheets Else MsgBox "Ogiltigt nummer" Avsluta om slutdel
Kolla in dialogrutan som 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 applikationsobjektet.
En stor fördel med att använda Application InputBox-metoden är att din kod kan leda till ett sortiment. 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 Som Område På Fel Fortsätt Nästa Set Rng = Program. InputBox _ (prompt: = "Ange ett intervall:", Typ: = 8) Om Rng är inget, avsluta sedan Sub MsgBox "Du valt intervall" & Rng. Adress End Sub
Så här ser det ut.
Använda InputBox-metoden för att få ett intervall.I det här enkla exemplet berättar koden användaren adressen till det intervall som valts. I det verkliga livet skulle din kod faktiskt göra något användbart med det valda sortimentet. En trevlig sak om det här exemplet är att Excel tar hand om felhanteringen. Om du anger något som inte är en räckvidd berättar Excel dig om det och låter dig försöka igen.
Applikationen. InputBox-metoden liknar VBA: s InputBox-funktion, men den har också vissa skillnader. Kontrollera hjälpsystemet för fullständiga detaljer.