Excel VBA InputBox

Selv om de fleste av de gangene du bruker dataene som allerede er med deg, opplever du noen ganger en situasjon der du vil at brukeren skal legge inn data som Navn, Alder osv. Type personlig informasjon. Denne typen innspill er nødvendig noen ganger når vi gjennomfører en undersøkelse og trenger å gjennomgå den objektive vurderingene fra mennesker.

Ved å bruke Excel VBAs InputBox, kan vi hente inndata fra brukeren. Som navnet antyder, fungerer InputBox som en popup-boks som ber brukeren mate noe informasjon.

Syntaks for VBA InputBox

Følgende er syntaks for VBA InputBox:

Hvor,

  • Spør - Melding som vises til brukeren. Dette er det eneste nødvendige argumentet, resten andre argumenter er valgfrie.
  • Tittel - Det er overskriften som vises i dialogvinduet etter vellykket utførelse av InputBox-setningen. Hvis ikke gitt, skriver systemet som standard ut Microsoft Excel som tittel.
  • Standard - Det er standardverdien som kommer i dialogboksen. Vi kan holde det null også. Ingen standardverdier er satt for dette argumentet.
  • XPos - Posisjonskoordinat for en dialogboks på X-aksen.
  • YPos - Plasseringskoordinat for en dialogboks på Y-aksen.
  • HelpFile - Plassering av hjelpefilen som skal brukes. Dette argumentet blir obligatorisk å angi når 'kontekst' -argumentet sendes.
  • Context - Representerer Help ContextId for HelpFile som brukes. Obligatorisk å bruke når 'HelpFile' -argumentet sendes.
  • Av alle disse argumentene er det bare de tre første som er nok til å opprette en InputBox.

Opprette InputBox i Excel VBA

Nedenfor er de forskjellige trinnene for å opprette InputBox i Excel ved hjelp av VBA-kode.

Du kan laste ned denne VBA InputBox Excel-malen her - VBA InputBox Excel-mal
  • Åpne VBE (Visual Basic Editor ved å trykke Alt + F11 samtidig i en Excel-fil, og klikk på Sett inn og legg til en ny modul i VBE.

  • Lag en makro i denne modulen med navnet 'Module1'. Tildel et navn til makroen.

  • Skriv kommandoen InputBox i redigereren.

Gi følgende innganger til InputBox-setningen:

  • Spør: "Får jeg vite ditt fulle navn?"
  • Tittel: “Personlig informasjon”
  • Standard: “Begynn å skrive her

Kode:

 Sub InputBoxEX () InputBox "Kan jeg vite navnet ditt?", "Personlig informasjon", "Begynn å skrive her" Slutt sub 

  • Trykk F5 eller run-knappen for å kjøre denne koden.

Hvordan lagre produksjonen av InputBox til celler?

Du har opprettet InputBox for å få innspill fra brukeren. Hvor output vil lagres? Vi har ikke nevnt noe sted hvor utdataene kan lagres.

La oss lagre utdataene vi får fra InputBox til å utmerke celler ved å følge trinnene nedenfor i VBA:

  • Deklarere en ny variabel 'Navn' med typen som 'Variant'. Denne typen variabler kan ta hvilken som helst verdi (numerisk / streng / logisk osv.).

Kode:

 Sub InputBoxEX () Dim Navn Som Variant End Sub 

  • Bruk InputBox til å tilordne verdi til denne variabelen som heter 'Navn'.

Kode:

 Sub InputBoxEX () Dim Navn Som Variant Name = InputBox ("Kan jeg vite navnet ditt?", "Personlig informasjon", "Begynn å skrive her") Slutt Sub 

Hvis du kunne ha lagt merke til parentesen etter InputBox-setningen, er de nødvendige fordi vi bruker denne setningen for en variabel 'Navn'. Så snart det blir en verdi som skal gis for en variabel, må den nevnes i et riktig format med parentes.

  • Uansett hvilken verdi brukeren har skrevet i dialogboksen, vil vi at den skal vises i celle A1 på Excel-arket. Sett følgende utsagn for det samme i VBE: Område (“A1”). Verdi = Navn.

Kode:

 Sub InputBoxEX () Dim Name As Variant Name = InputBox ("Kan jeg vite navnet ditt?", "Personal Information", "Start Typing Here") Range ("A1"). Value = Name End Sub 

Dette er det, la oss nå kjøre denne koden og se hvordan den fungerer.

  • Klikk på Kjør-knappen eller trykk F5 for å kjøre denne koden, du får følgende dialogboks. Skriv navnet ditt i dialogboksen dukket opp med navnet "Personlig informasjon" og trykk OK for å se hvor utskriften blir skrevet ut.

  • Så snart du legger inn verdien og klikker på OK, kan du se verdien som er lagt inn i celle A1. Se skjermdumpen nedenfor.

Enhver verdi kan lagres ved hjelp av InputBox hvis variabelen er riktig definert. I dette tilfellet har du definert variabelen 'Navn' som 'Variant'. Varianten datatype kan ta hvilken som helst dataverdi som jeg sa tidligere.

Se eksemplet nedenfor:

Jeg gir et nummer som et argument til dialogboksen når dukker opp. Se som nedenfor:

Klikk på OK, se utdataene nedenfor:

Verdien i celle A1 er endret til 2019.

La oss nå endre variabeltypen til Dato.

Kode:

 Sub InputBoxEX () Dim Navn Som Dato Navn = InputBox ("Kan jeg vite navnet ditt?", "Personlig informasjon", "Begynn å skrive her") Område ("A1"). Verdi = Navn Slutt Sub 

Kjør koden og prøv å legge inn den andre verdien enn datoen. Jeg oppgir navnet mitt selv og klikker OK.

  • Etter å ha klikket på OK, får du en feilmelding om kjøretid som sier 'Skriv feilpasning'

Det skjedde fordi typen variabelnavn er Dato nå, og jeg har gitt annet inngangsargument enn datoverdi (et strengnavn). Denne koden kjøres ikke og kaster en feil.

Validering av brukerinput

Hva om jeg forteller deg at brukerinngangen kan begrenses? Ja det er sant! Du kan begrense brukerinndata til tegn, tall eller logiske osv.

For å begrense brukerinndata kan du bruke Application.InputBox.

Syntax for Application.InputBox er som følger:

Hvor,

Spør - Melding som dukker opp for brukeren.

Tittel - Overskrift av dialogboksen.

Standard - Standardverdi som dukker opp på skriveområdet under dialogboksen.

Type - Type inngang.

Dette er de eneste viktige argumentene som er nok til å kjøre denne uttalelsen.

La oss starte dette med eksempel.

  • Forklar en variabel Navn som variant.

Kode:

 Sub InputBoxEX () Dim Navn Som Variant End Sub 

Tildel Application.InputBox til variabelen som heter Navn med de samme argumentene som de du har brukt InputBox. dvs. spørsmål, tittel og standard. Se koden nedenfor:

Kode:

 Sub InputBoxEX () Dim Navn Som Variant Name = Application.InputBox ("Kan jeg vite navnet ditt?", "Personlig informasjon", "Begynn å skrive her") Slutt Sub 

Nå, sett komma 5 ganger for å ignorere Venstre, Topp, Hjelp-fil og HelpContextID. Etter 5 kommaer kan du spesifisere inndatatypen.

Kode:

 Sub InputBoxEX () Dim Navn Som Variant Name = Application.InputBox ("Kan jeg vite navnet ditt?", "Personlig informasjon", "Begynn å skrive her",,,,, Slutt Sub 

Type inngangsstreng har nedenfor nevnte valideringer:

  • La oss velge 1 som en type i uttalelsen vår. Det betyr at bare tall / numeriske verdier er akseptable i dialogboksen som dukker opp.

Kode:

 Sub InputBoxEX () Dim Navn Som Variant Name = Application.InputBox ("Kan jeg vite navnet ditt?", "Personlig informasjon", "Begynn å skrive her",,,,, 1) Slutt Sub 

  • Kjør koden manuelt eller ved å bruke F5-tasten og gi navn som inndata i skriveområdet som vist nedenfor. Klikk deretter på OK og se output.

Det står at tallet ikke er gyldig. Det virker logisk fordi vi har angitt variabel inngangstype som nummer og gitt teksten som en inngang som ikke er akseptabelt av systemet.

På denne måten kan du begrense brukeren til bare å oppgi verdiene du vil se gjennom InputBox.

Ting å huske

  • InputBox godtar opptil 255 argumenter og kan bare vise 254. Så vær forsiktig med den maksimale lengden en bruker kan angi.
  • Bruksmetode kan brukes til å angi inndatatypen. Imidlertid, hvis den ikke brukes, må du være mer spesifikk om inndatatypen.
  • Det anbefales å velge en variant datatype, ettersom den kan inneholde hvilken som helst av numerisk / tekst / logisk osv. B = verdier.

Anbefalte artikler

Dette har vært en guide til VBA InputBox. Her diskuterte vi hvordan du oppretter InputBox i Excel ved hjelp av VBA-kode sammen med praktiske eksempler og nedlastbar Excel-mal. Du kan også gå gjennom andre foreslåtte artikler -

  1. Hvordan bruke FINN-funksjon i Excel
  2. Opprette VBA-funksjon i Excel
  3. Veiledning for rekkevidde i Excel
  4. Hvordan bruker jeg VBA VLOOKUP-funksjon?

Kategori: