Dažos gadījumos, iespējams, vēlēsities lietotājam atlasīt Excel VBA diapazonu, kamēr tiek parādīts dialoglodziņš. Šāda veida Excel VBA diapazona atlases piemērs ir dialoglodziņā Tabulas izveide, kas tiek parādīts, izvēloties Sākums → Ievietot → Tabulas → Tabula. Dialoglodziņā Tabulas izveide ir diapazona atlasītāja vadīkla, kas satur Excel minējumu par konvertējamo diapazonu, taču varat izmantot šo vadīklu, lai mainītu diapazonu, darblapā atlasot šūnas.
Lai dialoglodziņā atļautu Excel VBA diapazona atlasi, pievienojiet vadīklu RefEdit. Nākamajā piemērā tiek parādīts dialoglodziņš ar pašreizējā reģiona diapazona adresi, kas tiek parādīta vadīklā RefEdit. Pašreizējais apgabals ir tukšu šūnu bloks, kurā ir aktīvā šūna. Lietotājs var pieņemt vai mainīt šo diapazonu. Kad lietotājs noklikšķina uz Labi, procedūra padara diapazonu treknrakstā.
Šis dialoglodziņš ļauj lietotājam izvēlēties diapazonu.
Šajā Excel VBA piemērā tiek pieņemts, ka:
- Jums ir UserForm ar nosaukumu UserForm1.
- UserForm satur CommandButton vadīklu ar nosaukumu OKButton.
- UserForm satur CommandButton vadīklu ar nosaukumu CancelButton.
- UserForm satur RefEdit vadīklu ar nosaukumu RefEdit1.
Kods tiek saglabāts VBA modulī un parādīts šeit. Šis kods veic divas darbības: inicializē dialoglodziņu, piešķirot RefEdit vadīklai pašreizējā reģiona adresi, un parāda UserForm.
SubboldCells()
Iziet, ja darblapa nav aktīva
Ja TypeName(ActiveSheet) <> "Darblapa" Pēc tam izejiet no Sub
' Izvēlieties pašreizējo reģionu
ActiveCell.CurrentRegion.Select
Inicializējiet RefEdit vadību
UserForm1.RefEdit1.Text = Selection.Address
Rādīt dialoglodziņu
UserForm1.Show
Beigt apakš
Noklikšķinot uz pogas Labi, tiek izpildīta šāda procedūra. Šī procedūra veic vienkāršu kļūdu pārbaudi, lai pārliecinātos, ka RefEdit vadīklā norādītais diapazons ir derīgs.
Privāts apakšējais OKButton_Click()
Par kļūdu GoTo BadRange
Diapazons(RefEdit1.Text).Font.Bold = True
Izlādēt UserForm1
Iziet Sub
BadRange:
MsgBox "Norādītais diapazons nav derīgs."
Beigt apakš
Ja programmā Excel VBA rodas kļūda (visticamāk, nederīga diapazona specifikācija vadīklā RefEdit), kods pāriet uz etiķeti BadRange un tiek parādīts ziņojuma lodziņš. Dialoglodziņš paliek atvērts, lai lietotājs varētu izvēlēties citu diapazonu.
Ja lietotāja izvēlētā diapazona iegūšana ir vienīgā funkcija, ko veic jūsu UserForm, varat vienkāršot lietas, izmantojot metodi Application InputBox.