I nogle tilfælde vil du måske have brugeren til at vælge et Excel VBA-område, mens en dialogboks vises. Et eksempel på denne type Excel VBA-områdevalg forekommer i dialogboksen Opret tabel, som vises, når du vælger Hjem → Indsæt → Tabeller → Tabel. Dialogboksen Opret tabel har et områdevælgerkontrolelement, der indeholder Excels gæt vedrørende det område, der skal konverteres - men du kan bruge denne kontrol til at ændre området ved at markere celler i regnearket.
For at tillade et Excel VBA-områdevalg i din dialogboks skal du tilføje en RefEdit-kontrol. Følgende eksempel viser en dialogboks med den aktuelle regions områdeadresse vist i en RefEdit-kontrol. Den aktuelle region er den blok af ikke-tomme celler, der indeholder den aktive celle. Brugeren kan acceptere eller ændre dette område. Når brugeren klikker på OK, gør proceduren området fed.
Denne dialogboks lader brugeren vælge et område.
Dette Excel VBA-eksempel antager følgende:
- Du har en brugerformular ved navn UserForm1.
- UserForm indeholder en CommandButton-kontrol ved navn OKButton.
- UserForm indeholder en CommandButton-kontrol ved navn CancelButton.
- Brugerformularen indeholder en RefEdit-kontrol ved navn RefEdit1.
Koden gemmes i et VBA-modul og vises her. Denne kode gør to ting: initialiserer dialogboksen ved at tildele den aktuelle regions adresse til RefEdit-kontrollen og viser UserForm.
Sub BoldCells()
' Afslut, hvis regnearket ikke er aktivt
Hvis TypeName(ActiveSheet) <> "Worksheet" Afslut Sub
' Vælg den aktuelle region
ActiveCell.CurrentRegion.Select
' Initialiser RefEdit-kontrol
UserForm1.RefEdit1.Text = Udvalg.adresse
' Vis dialog
BrugerForm1.Vis
Slut Sub
Følgende procedure udføres, når der klikkes på OK-knappen. Denne procedure udfører en simpel fejlkontrol for at sikre, at det område, der er angivet i RefEdit-kontrollen, er gyldigt.
Privat under OKButton_Click()
Ved fejl GoTo BadRange
Range(RefEdit1.Text).Font.Fed = Sand
Fjern UserForm1
Afslut Sub
BadRange:
MsgBox "Det angivne område er ikke gyldigt."
Slut Sub
Hvis der opstår en fejl i Excel VBA (sandsynligvis en ugyldig områdespecifikation i RefEdit-kontrollen), hopper koden til BadRange-etiketten, og en meddelelsesboks vises. Dialogboksen forbliver åben, så brugeren kan vælge et andet område.
Hvis at få et brugervalgt område er den eneste funktion, der udføres af din UserForm, kan du forenkle tingene ved at bruge Application InputBox-metoden.