Mõnel juhul võite soovida, et kasutaja valiks dialoogiboksi kuvamise ajal Exceli VBA vahemiku. Seda tüüpi Exceli VBA vahemiku valimise näide on dialoogiboksis Tabeli loomine, mis kuvatakse, kui valite Avaleht → Lisa → Tabelid → Tabel. Dialoogiboksis Tabeli loomine sisaldab vahemiku valija juhtelementi, mis sisaldab Exceli oletusi teisendatava vahemiku kohta, kuid saate seda juhtelementi kasutada vahemiku muutmiseks, valides töölehel lahtreid.
Exceli VBA vahemiku valimise lubamiseks dialoogiboksis lisage juhtelement RefEdit. Järgmises näites kuvatakse dialoogiboks, kus praeguse piirkonna vahemiku aadress kuvatakse juhtelemendis RefEdit. Praegune piirkond on tühjade lahtrite plokk, mis sisaldab aktiivset lahtrit. Kasutaja saab selle vahemikuga nõustuda või seda muuta. Kui kasutaja klõpsab OK, muudab protseduur vahemiku paksuks.

See dialoogiboks võimaldab kasutajal valida vahemiku.
See Exceli VBA näide eeldab järgmist.
- Teil on kasutajavorm nimega UserForm1.
- UserForm sisaldab CommandButtoni juhtelementi nimega OKButton.
- UserForm sisaldab CommandButtoni juhtelementi nimega CancelButton.
- Kasutajavorm sisaldab RefEditi juhtelementi nimega RefEdit1.
Kood salvestatakse VBA moodulisse ja kuvatakse siin. See kood teeb kahte asja: lähtestab dialoogiboksi, määrates praeguse piirkonna aadressi juhtelemendile RefEdit, ja kuvab kasutajavormi.
Alampaksud lahtrid ()
Väljuge, kui tööleht pole aktiivne
Kui TypeName(ActiveSheet) <> "Worksheet" Seejärel välju Sub
' Valige praegune piirkond
ActiveCell.CurrentRegion.Select
Käivitage RefEdit juht
UserForm1.RefEdit1.Text = Selection.Address
' Näita dialoogi
UserForm1.Show
Lõpeta alam
Nupu OK klõpsamisel käivitatakse järgmine protseduur. See protseduur kontrollib lihtsat veakontrolli, et veenduda, kas juhtelemendis RefEdit määratud vahemik on kehtiv.
Privaatne alam OKButton_Click()
Viga GoTo BadRange
Vahemik(RefEdit1.Text).Font.Bold = Tõene
Laadi kasutajavorm1 maha
Välju Sub
BadRange:
MsgBox "Määratud vahemik ei kehti."
Lõpeta alam
Kui Excel VBA-s ilmneb tõrge (tõenäoliselt on RefEditi juhtelemendi vale vahemiku spetsifikatsioon), hüppab kood sildile BadRange ja kuvatakse teatekast. Dialoogiboks jääb avatuks, et kasutaja saaks valida mõne muu vahemiku.
Kui kasutaja poolt valitud vahemiku saamine on ainus funktsioon, mida teie UserForm täidab, saate asju lihtsustada, kasutades Application InputBox meetodit.