VBA InputBox-funksjonen er nyttig for å få en enkelt informasjon som er skrevet inn av brukeren i Excle 2016. Denne informasjonen kan være en verdi, en tekststreng eller til og med en områdeadresse. Dette er et godt alternativ til å utvikle et UserForm når du bare trenger å få én verdi.
InputBox-syntaks
Her er en forenklet versjon av syntaksen til InputBox-funksjonen:
InputBox(spørsmål[, tittel][, standard])
InputBox-funksjonen godtar argumentene som er oppført her.
Argument |
Hva det påvirker |
Spør |
Teksten som vises i inndataboksen |
Tittel |
Teksten som vises i inndataboksens tittellinje
(valgfritt) |
Misligholde |
Standardverdien for brukerens inndata (valgfritt) |
Et InputBox eksempel
Her er en uttalelse som viser hvordan du kan bruke InputBox-funksjonen:
TheName = InputBox("Hva er navnet ditt?", "Hilsen")
Når du utfører denne VBA-setningen, viser Excel denne dialogboksen. Legg merke til at dette eksemplet bare bruker de to første argumentene og ikke oppgir en standardverdi. Når brukeren skriver inn en verdi og klikker OK, tildeler koden verdien til variabelen TheName.
InputBox-funksjonen viser denne dialogboksen.
Følgende eksempel bruker det tredje argumentet og gir en standardverdi. Standardverdien er brukernavnet som er lagret av Excel (Applikasjonsobjektets UserName-egenskap).
Sub GetName()
Demp Navnet som streng
TheName = InputBox(“Hva er navnet ditt?”, _
"Hilsen", Application.UserName)
End Sub
Inndataboksen viser alltid en Avbryt-knapp. Hvis brukeren klikker på Avbryt, returnerer InputBox-funksjonen en tom streng.
VBAs InputBox-funksjon returnerer alltid en streng, så hvis du trenger å få en verdi, må koden din foreta en ekstra kontroll. Følgende eksempel bruker InputBox-funksjonen for å få et tall. Den bruker IsNumeric-funksjonen for å sjekke om strengen er et tall. Hvis strengen inneholder et tall, er alt i orden. Hvis brukerens oppføring ikke kan tolkes som et tall, viser koden en meldingsboks.
Sub AddSheets()
Dim prompt som streng
Dim bildetekst som streng
Dim DefValue As Long
Dim NumSheets som streng
Spørsmål = "Hvor mange ark vil du legge til?"
Bildetekst = "Fortell meg..."
DefValue = 1
NumSheets = InputBox(Prompt, Caption, DefValue)
Hvis NumSheets = ““ Avslutt Sub 'Canceled
Hvis IsNumeric(NumSheets) Da
Hvis NumSheets > 0 Then Sheets.Add Count:=NumSheets
Ellers
MsgBox "Ugyldig nummer"
Slutt om
End Sub
Sjekk ut dialogboksen som denne rutinen produserer.
Et annet eksempel på bruk av InputBox-funksjonen.
En annen type InputBox
Informasjonen som presenteres her gjelder VBAs InputBox-funksjon. Microsoft ser ut til å elske forvirring, så du har også tilgang til InputBox- metoden , som er en metode for Application-objektet.
En stor fordel med å bruke Application InputBox-metoden er at koden din kan be om et områdevalg. Brukeren kan deretter velge området i regnearket ved å markere cellene. Her er et raskt eksempel som ber brukeren velge et område:
Sub GetRange()
Dim Rng As Range
Ved feil på Fortsett neste
Sett Rng = Application.InputBox _
(spørsmål:=“Spesifiser et område:”, Type:=8)
Hvis Rng er ingenting, avslutter du Sub
MsgBox "Du valgte område " & Rng.Address
End Sub
Slik ser det ut.
Bruk av Application InputBox-metoden for å få en rekkevidde.
I dette enkle eksempelet forteller koden brukeren adressen til området som ble valgt. I det virkelige liv ville koden din faktisk gjøre noe nyttig med det valgte området. En fin ting med dette eksemplet er at Excel tar seg av feilhåndteringen. Hvis du skriver inn noe som ikke er et område, forteller Excel deg om det og lar deg prøve på nytt.
Application.InputBox-metoden ligner på VBAs InputBox-funksjon, men den har også noen forskjeller. Sjekk hjelpesystemet for fullstendige detaljer.