Excel VBA InputBox

Även om de flesta gånger du använder data som redan finns med dig, kommer du ibland upp i en situation där du vill att användaren ska mata in uppgifterna som Namn, Ålder etc. typ av personlig information. Sådana inmatningsinformation behövs ibland när vi genomför en undersökning och behöver granska människors opartiska åsikter.

Med hjälp av Excel VBA: s InputBox kan vi hämta inmatningsdata från användaren. Som namnet antyder fungerar InputBox som en popup-ruta som ber användaren att mata viss information.

Syntax för VBA InputBox

Följande är syntaxen för VBA InputBox:

Var,

  • Fråga - Meddelande som visas för användaren. Detta är det enda nödvändiga argumentet, resten andra argument är valfria.
  • Titel - Det är rubriken som visas i dialogrutan efter framgångsrikt genomförande av InputBox-uttalandet. Om det inte anges skriver systemet som standard 'Microsoft Excel' som en titel.
  • Standard - Det är standardvärdet som kommer i dialogrutan. Vi kan också hålla det noll. Det finns inget standardvärde för detta argument.
  • XPos - Positionskoordinat för en dialogruta på X-axeln.
  • YPos - Positionskoordinat för en dialogruta på Y-axeln.
  • HelpFile - Plats för hjälpfilen som ska användas. Detta argument blir obligatoriskt att ställa in när "Context" -argumentet skickas.
  • Kontext - representerar hjälp ContextId för den använda HelpFile. Obligatoriskt att använda när "HelpFile" -argumentet skickas.
  • Av alla dessa argument är det bara de tre första som räcker för att framgångsrikt skapa en InputBox.

Skapa InputBox i Excel VBA

Nedan följer de olika stegen för att skapa InputBox i Excel med VBA-kod.

Du kan ladda ner denna VBA InputBox Excel-mall här - VBA InputBox Excel-mall
  • Öppna VBE (Visual Basic Editor genom att trycka Alt + F11 samtidigt i en Excel-fil och klicka på Infoga och lägg till en ny modul i VBE.

  • Skapa ett makro i den här modulen med namnet 'Module1'. Tilldela ett namn till makroen.

  • Skriv kommandot InputBox i redigeraren.

Ge följande input till InputBox-uttalandet:

  • Fråga: "Får jag veta ditt fulla namn?"
  • Titel: "Personlig information"
  • Standard: “Börja skriva här

Koda:

 Sub InputBoxEX () InputBox "Får jag veta ditt namn?", "Personlig information", "Börja skriva här" Slut Sub 

  • Tryck på F5 eller körknappen för att köra den här koden.

Hur lagrar jag utgången av InputBox till celler?

Du har skapat InputBox för att få inmatningen från användaren. Men där utgången lagras? Vi har inte nämnt någon plats där utdata kan lagras.

Låt oss lagra den utgång vi får från InputBox för att excelceller genom att följa nedanstående steg i VBA:

  • Förklara en ny variabel "Namn" med typen som "Variant". Denna typ av variabel kan ta valfritt värde (numerisk / sträng / logisk etc.).

Koda:

 Sub InputBoxEX () Dim Namn Som Variant End Sub 

  • Använd InputBox för att tilldela värde till denna variabel som heter 'Namn'.

Koda:

 Sub InputBoxEX () Dim Namn som Variant Name = InputBox ("Får jag veta ditt namn?", "Personlig information", "Börja skriva här") Slut Sub 

Om du kunde ha märkt parentesen efter InputBox-uttalandet behövs de eftersom vi använder detta uttalande för en variabel "Namn". Så snart det blir ett värde som ska anges för en variabel, måste den nämnas i rätt format med parentes.

  • Oavsett vilket värde användaren har skrivit i dialogrutan, vill vi att det ska visas i cell A1 i Excel-arket. Sätt följande påstående för samma i VBE: Område (“A1”). Värde = Namn.

Koda:

 Sub InputBoxEX () Dim Name Som Variant Name = InputBox ("Får jag veta ditt namn?", "Personal Information", "Start Typing Here") Range ("A1"). Value = Name End Sub 

Det här är det, nu ska vi köra den här koden och se hur den fungerar.

  • Klicka på Kör-knappen eller tryck på F5 för att köra den här koden, så får du följande dialogruta. Skriv ditt namn i dialogrutan med namnet “Personlig information” och tryck OK för att se var utskriften skrivs ut.

  • Så snart du matar in värdet och klickar på OK kan du se värdet som matas in i cell A1. Se skärmdumpen nedan.

Vilket värde som helst kan lagras med InputBox om variabeln är korrekt definierad. I det här fallet har du definierat variabeln "Namn" som "Variant". Varianten datatyp kan ta vilket datavärde som jag sa tidigare.

Se exemplet nedan:

Jag ger ett nummer som ett argument till dialogrutan när dyker upp. Se som nedan:

Klicka på OK, se utgången nedan:

Värdet i cell A1 ändras till 2019.

Låt oss nu ändra variabeltypen till Datum.

Koda:

 Sub InputBoxEX () Dim Name As Date Name = InputBox ("Får jag veta ditt namn?", "Personlig information", "Start Typing Here") Range ("A1"). Value = Name End Sub 

Kör koden och försök att mata in ett annat värde än datumet. Jag anger själv mitt namn och klickar på OK.

  • Efter att ha klickat på OK, visas ett felmeddelande om körtid som säger: "Skriv felanpassning".

Det inträffade eftersom typen av variabelnamn är Datum nu och jag har gett inmatningsargument annat än datumvärdet (ett strängnamn). Därför kör inte denna kod och kastar ett fel.

Validering av användarinmatning

Vad händer om jag säger att användarinmatningen kan begränsas? Ja det är sant! Du kan begränsa användarinmatningen till tecken, siffror eller logiska, etc.

För att begränsa användarinmatningen kan du använda Application.InputBox.

Syntax för Application.InputBox är följande:

Var,

Fråga - Meddelande som dyker upp för användaren.

Titel - Rubrik i dialogrutan.

Standard - Standardvärde som dyker upp på skrivområdet under dialogrutan.

Typ - ingångstypen.

Dessa är de enda viktiga argumenten som räcker för att driva detta uttalande.

Låt oss börja med detta exempel.

  • Förklara en variabel Namn som variant.

Koda:

 Sub InputBoxEX () Dim Namn Som Variant End Sub 

Tilldela Application.InputBox till variabeln som heter Namn med samma argument som de som du har använt InputBox. dvs Fråga, titel och standard. Se koden nedan:

Koda:

 Sub InputBoxEX () Dim Namn Som Variant Name = Application.InputBox ("Får jag veta ditt namn?", "Personlig information", "Börja skriva här") Slut Sub 

Nu ska du sätta komma 5 gånger för att ignorera vänster-, topp-, HelpFile- och HelpContextID. Efter 5 komma kan du ange ingångstypen.

Koda:

 Sub InputBoxEX () Dim Namn Som Variant Name = Application.InputBox ("Får jag veta ditt namn?", "Personlig information", "Börja skriva här",,,,, Slut Sub 

Typ av inmatningssträng har nedan nämnda valideringar:

  • Låt oss välja 1 som en typ i vårt uttalande. Det betyder att endast siffror / numeriska värden är godtagbara i dialogrutan som dyker upp.

Koda:

 Sub InputBoxEX () Dim Namn som Variant Name = Application.InputBox ("Får jag veta ditt namn?", "Personlig information", "Börja skriva här",,,,, 1) Slut Sub 

  • Kör koden manuellt eller med F5-tangenten och ange namn som inmatning i skrivområdet som visas nedan. Klicka sedan på OK och se Output.

Det står att numret är inte giltigt. Det verkar logiskt eftersom vi har ställt in den variabla ingångstypen som nummer och tillhandahåller texten som en ingång som inte är acceptabelt av systemet.

På detta sätt kan du begränsa användaren att bara ange de värden som du vill se via InputBox.

Saker att komma ihåg

  • InputBox accepterar upp till 255 argument och kan endast visa 254. Så var försiktig med den maximala längden som en användare kan ange.
  • Applikationsmetod kan användas för att ställa in datatypen. Men om den inte används måste du vara mer specifik när det gäller ingångsdatatypen.
  • En variantdatatyp rekommenderas att välja eftersom den kan innehålla någon av numeriska / text / logiska etc. B = värden.

Rekommenderade artiklar

Detta har varit en guide till VBA InputBox. Här diskuterade vi hur man skapar InputBox i Excel med hjälp av VBA-kod tillsammans med praktiska exempel och nedladdningsbar Excel-mall. Du kan också gå igenom våra andra föreslagna artiklar -

  1. Hur man använder FIND-funktion i Excel
  2. Skapa VBA-funktion i Excel
  3. Guide till intervall i Excel
  4. Hur använder jag VBA VLOOKUP-funktion?

Kategori: