Denne vejledning viser, hvordan du får input fra en bruger med VBA Input Box.
Det VBA -inputboks giver os mulighed for at bede brugeren om at indtaste oplysninger. Oplysningerne kan derefter bruges i vores VBA -kode eller i et Excel -regneark.
VBA -inputboks med variabel
Vi kan erklære en variabel i vores VBA -kode, som derefter gemmer de oplysninger, der er indtastet i inputboksen. Vi kan derefter bruge denne variabel i vores kode.
Afhængigt af den type information, vi ønsker returneret fra inputboksen, kan vi erklære en bestemt type variabel til enten at returnere tekst (en streng eller variantvariabel) eller for at returnere et tal (et heltal, lang, dobbelt eller enkelt variabel).
Strengvariablen med en inputboks
Sådan kan du oprette en InputBox, hvor dataene returneres til en strengvariabel.
123 | Dim strInput som strengstrInput = InputBox ("Dette er min InputBox", "MyInputTitle", "Indtast din inputtekst HER") |
Bemærk først, at vi erklærer en variabel. Denne variabel vil blive tildelt den værdi, som brugeren indtaster. Vi brugte variabel type String, så feltet Input kunne acceptere tekststrenge (som indeholder alfanumeriske tegn).
Nummervariablen med en inputboks
Hvis du angiver en talvariabel, skal du kun indtaste et tal i inputboksen.
12 | Dim iInput som heltaliInput = InputBox ("Indtast venligst et tal", "Opret fakturanummer", 1) |
Først erklærer vi talvariablen som en heltalsvariabel. Vi kan så også sætte en standardværdi på 1 i inputboksen.
Hvis vi skulle indtaste en streng i stedet for et tal og derefter klikke på OK, ville vi få en Type Mismatch -fejl, da en talvariabel ikke accepterer en streng.
Få input fra en bruger
Her er et andet eksempel, der bruger de mest populære funktioner i en InputBox.
Følgende kode gør tre ting:
1. Beder om input med en InputBox og tildeler den til en variabel
2. Verificerer input, ellers afslutter sub
3. Returnerer input i en meddelelsesboks
12345678910111213 | Offentlig under MyInputBox ()Dim MyInput som strengMyInput = InputBox ("Dette er min InputBox", "MyInputTitle", "Indtast din inputtekst HER")Hvis MyInput = "Indtast din inputtekst HER" Eller MyInput = "" SåAfslut SubAfslut HvisMsgBox "Teksten fra MyInputBox er" & MyInputAfslut Sub |
Returnering af input til et Excel -ark
Du kan returnere det input, du indtaster, i en inputboks til en bestemt celle i dit Excel -ark.
1 | Område ("P1") = InputBox ("Indtast venligst dit navn", "Indtast navn", "Indtast navn HER") |
Vi kan også returnere inputdata til et Excel -ark ved hjælp af en variabel.
12345678910 | Sub EnterNumber ()Ved fejl Genoptag næsteDim dblMængde som dobbeltdblAmount = InputBox ("Angiv det nødvendige beløb", "Indtast beløb")Hvis dblAmount 0 SåOmråde ("A1") = dblAmountAndetMsgBox "Du har ikke indtastet et nummer!"Afslut HvisAfslut Sub |
I eksemplet ovenfor skal vi indtaste et tal. Hvis vi indtaster et tal, så variablen dblAmount vil sætte nummeret i Excel -arket på celle A1. Men hvis vi ikke indtaster et tal, vil en meddelelsesboks fortælle os, at vi ikke har indtastet et nummer, og intet vil blive sat i celle A1.
Brug af VBA InputBox i Access VBA
VBA -inputboksen fungerer nøjagtig på samme måde i Access, som den gør i Excel, når brugerinput returneres i form af en meddelelsesboks.
Men hvis du vil returnere brugerinput til databasen, skal du bruge Recordset -objektet frem for Range -objektet, som det bruges i Excel.
1234567891011121314 | Sub EnterInvoiceNumber ()Dim dbs som databaseDim første som rekordsætIndstil dbs = CurrentDbIndstil rst = dbs.OpenRecordset ("tblMatters", dbOpenDynaset)Med første.Tilføj ny! InvNo = InputBox ("Indtast venligst fakturanummeret", "GENERATION AF FAKTURANUMMER", 1).OpdaterAfslut medførst. lukIndstil rst = IntetIndstil dbs = IntetAfslut Sub |