Excel VBA InputBox

Selvom de fleste af de gange, du bruger de data, der allerede er sammen med dig, oplever du nogle gange en situation, hvor du vil have, at brugeren skal indtaste data som navn, alder osv. Slags personlige oplysninger. Disse slags inputoplysninger er nogle gange nødvendige, når vi foretager en undersøgelse og er nødt til at gennemgå den uvildige mening fra mennesker.

Ved hjælp af Excel VBAs InputBox kan vi hente inputdataene fra brugeren. Som navnet antyder fungerer InputBox som en pop-up-boks, der beder brugeren om at fodre visse oplysninger.

Syntaks til VBA InputBox

Følgende er syntaks for VBA InputBox:

Hvor,

  • Spørg - Meddelelse, der vises til brugeren. Dette er det eneste krævede argument, resten andre argumenter er valgfrie.
  • Titel - Det er overskriften, der vises i dialogvinduet efter den vellykkede udførelse af InputBox-sætningen. Hvis det ikke er givet, udskriver systemet som standard 'Microsoft Excel' som en titel.
  • Standard - Det er standardværdien, der kommer i dialogboksen. Vi kan også holde det ugyldigt. Der er ikke indstillet nogen standardværdi for dette argument.
  • XPos - Positionskoordinat for en dialogboks på X-aksen.
  • YPos - Placeringskoordinat for en dialogboks på Y-aksen.
  • HelpFile - Placering af hjælpefilen, der skal bruges. Dette argument bliver obligatorisk at indstille, når 'kontekst' -argumentet sendes.
  • Kontekst - repræsenterer Hjælp ContextId for den anvendte HelpFile. Obligatorisk at bruge, når 'HelpFile' -argumentet sendes.
  • Ud af alle disse argumenter er det kun de første tre, der er nok til at kunne oprette en InputBox.

Oprettelse af InputBox i Excel VBA

Nedenfor er de forskellige trin til at oprette InputBox i Excel ved hjælp af VBA-kode.

Du kan downloade denne VBA InputBox Excel-skabelon her - VBA InputBox Excel-skabelon
  • Åbn VBE (Visual Basic Editor ved at trykke på Alt + F11 samtidigt i en Excel-fil og klik på Indsæt og tilføj et nyt modul i VBE.

  • Opret en makro i dette modul med navnet 'Module1'. Tildel et navn til makroen.

  • Skriv kommandoen InputBox i editoren.

Giv følgende input til InputBox-sætningen:

  • Spørg: "Må jeg kende dit fulde navn?"
  • Titel: “Personlige oplysninger”
  • Standard: “Start skrivning her

Kode:

 Sub InputBoxEX () InputBox "Må jeg kende dit navn?", "Personlige oplysninger", "Start skriv her" End Sub 

  • Tryk på F5 eller kør knappen for at køre denne kode.

Hvordan gemmer man output af InputBox til celler?

Du har oprettet InputBox for at hente input fra brugeren. Hvor output bliver gemt? Vi har ikke nævnt noget sted, hvor output kan gemmes.

Lad os gemme det output, vi får fra InputBox til excel celler ved at følge nedenstående trin i VBA:

  • Angiv en ny variabel 'Navn' med typen som 'Variant'. Denne type variabel kan tage enhver værdi (numerisk / streng / logisk osv.).

Kode:

 Sub InputBoxEX () Dim Navn Som Variant End Sub 

  • Brug InputBox til at tildele værdi til denne variabel kaldet 'Navn'.

Kode:

 Sub InputBoxEX () Dim Navn Som Variant Navn = InputBox ("Kan jeg kende dit navn?", "Personlige oplysninger", "Start at skrive her") End Sub 

Hvis du kunne have bemærket parentesen efter InputBox-sætningen, er disse nødvendige, fordi vi bruger denne sætning til en variabel 'Navn'. Så snart det bliver en værdi, der skal gives for en variabel, skal den nævnes i et korrekt format med parentes.

  • Uanset hvilken værdi brugeren har skrevet i dialogboksen, ønsker vi, at den skal vises i celle A1 på Excel-ark. Sæt følgende sætning for det samme i VBE: Område (“A1”). Værdi = Navn.

Kode:

 Sub InputBoxEX () Dim Navn Som Variant Navn = InputBox ("Kan jeg kende dit navn?", "Personlige oplysninger", "Start at skrive her") Område ("A1"). Værdi = Navn Slut Sub 

Dette er det, lad os nu køre denne kode og se, hvordan den fungerer.

  • Klik på knappen Kør, eller tryk på F5 for at køre denne kode. Du får følgende dialogboks. Skriv dit navn i dialogboksen, der dukkede op med navnet "Personlige oplysninger", og tryk på OK for at se, hvor output bliver udskrevet.

  • Så snart du indtaster værdien og klikker på OK, kan du se den indtastede værdi i celle A1. Se skærmbilledet nedenfor.

Enhver værdi kan gemmes ved hjælp af InputBox, hvis variablen er korrekt defineret. I dette tilfælde har du defineret variablen 'Navn' som 'Variant'. Variantdatatypen kan tage enhver dataværdi, som jeg sagde tidligere.

Se eksemplet nedenfor:

Jeg giver et nummer som et argument til dialogboksen, når der dukker op. Se som nedenfor:

Klik på OK, se output nedenfor:

Værdien i celle A1 ændres til 2019.

Lad os nu ændre variabeltypen til Dato.

Kode:

 Sub InputBoxEX () Dim Navn Som Dato Navn = InputBox ("Kan jeg kende dit navn?", "Personlige oplysninger", "Start at skrive her") Område ("A1"). Værdi = Navn Slut Sub 

Kør koden, og prøv at indtaste den anden værdi end datoen. Jeg indtaster selv mit navn og klikker på OK.

  • Når du har klikket på OK, vises en fejlmeddelelse om kørselstid, der siger 'Type mismatch'.

Det forekom, fordi typen af ​​variabelnavn er Dato nu, og jeg har givet andet inputinput end datoværdi (et strengnavn). På grund af hvilken denne kode ikke udføres og kaster en fejl.

Validering af brugerinput

Hvad hvis jeg fortæller dig, at brugerinput kan begrænses? Ja, det er sandt! Du kan begrænse brugerinput til tegn, tal eller logisk osv.

For at begrænse brugerinput kan du bruge Application.InputBox.

Syntaks til anvendelse.InputBox er som følger:

Hvor,

Spørg - Meddelelse, der dukker op for brugeren.

Titel - Overskrift af dialogboksen.

Standard - Standardværdi, der dukker op i skriveområdet under dialogboksen.

Type - Inputtypen.

Dette er de eneste vigtige argumenter, der er nok til at køre denne erklæring.

Lad os starte med dette eksempel.

  • Angiv en variabel Navn som Variant.

Kode:

 Sub InputBoxEX () Dim Navn Som Variant End Sub 

Tildel Application.InputBox til variablen kaldet Navn med de samme argumenter som dem, du har brugt InputBox. dvs. Spørg, titel og standard. Se koden nedenfor:

Kode:

 Sub InputBoxEX () Dim Navn Som Variant Navn = Application.InputBox ("Må jeg kende dit navn?", "Personlige oplysninger", "Start at skrive her") End Sub 

Nu skal du sætte komma 5 gange for at ignorere Venstre, Top, HelpFile og HelpContextID. Efter 5 kommaer kan du specificere inputtypen.

Kode:

 Sub InputBoxEX () Dim Navn Som Variant Name = Application.InputBox ("Kan jeg kende dit navn?", "Personlige oplysninger", "Start Skriv her",,,,, Slutt Sub 

Type af inputstreng har nedenstående valideringer:

  • Lad os vælge 1 som en type i vores erklæring. Det betyder, at det kun er tal / numeriske værdier, der kan accepteres i den dialogboks, der dukker op.

Kode:

 Sub InputBoxEX () Dim Navn Som Variant Name = Application.InputBox ("Kan jeg kende dit navn?", "Personlige oplysninger", "Start at skrive her",,,,, 1) End Sub 

  • Kør koden manuelt eller ved hjælp af F5-tasten og angiv navn som input i skriveområdet som vist nedenfor. Klik derefter på OK og se output.

Det siger, at antallet ikke er gyldigt. Det virker logisk, fordi vi har indstillet den variable inputtype som nummeret og leverer teksten som et input, som ikke er acceptabelt af systemet.

På denne måde kan du begrænse brugeren til kun at indtaste de værdier, du vil se gennem InputBox.

Ting at huske

  • InputBox accepterer op til 255 argumenter og kan kun vise 254. Så vær forsigtig med den maksimale længde, som en bruger kan indtaste.
  • Anvendelsesmetode kan bruges til at indstille inputdatatypen. Hvis det ikke bruges, skal du dog være mere specifik med hensyn til inddatatypen.
  • Det anbefales at vælge en variant datatype, da den kan indeholde en hvilken som helst af numerisk / tekst / logisk osv. B = værdier.

Anbefalede artikler

Dette har været en guide til VBA InputBox. Her diskuterede vi, hvordan man opretter InputBox i Excel ved hjælp af VBA-kode sammen med praktiske eksempler og downloadbar excel-skabelon. Du kan også gennemgå vores andre foreslåede artikler -

  1. Sådan bruges FIND-funktion i Excel
  2. Oprettelse af VBA-funktion i Excel
  3. Vejledning til rækkevidde i Excel
  4. Hvordan bruges VBA VLOOKUP-funktion?

Kategori: