V nekaterih primerih boste morda želeli, da uporabnik izbere obseg Excel VBA, medtem ko je prikazano pogovorno okno. Primer te vrste izbire obsega Excel VBA se pojavi v pogovornem oknu Ustvari tabelo, ki se prikaže, ko izberete Domov → Vstavi → Tabele → Tabela. Pogovorno okno Ustvari tabelo ima kontrolnik izbirnika obsega, ki vsebuje Excelovo ugibanje glede obsega, ki ga želite pretvoriti, vendar lahko s tem kontrolnikom spremenite obseg tako, da izberete celice na delovnem listu.
Če želite v pogovornem oknu omogočiti izbiro obsega Excel VBA, dodajte kontrolnik RefEdit. Naslednji primer prikazuje pogovorno okno z naslovom obsega trenutne regije, prikazanim v kontrolniku RefEdit. Trenutna regija je blok nepraznih celic, ki vsebuje aktivno celico. Uporabnik lahko ta obseg sprejme ali spremeni. Ko uporabnik klikne V redu, postopek naredi obseg krepko.
To pogovorno okno omogoča uporabniku izbiro obsega.
Ta primer Excel VBA predpostavlja naslednje:
- Imate uporabniški obrazec z imenom UserForm1.
- Uporabniški obrazec vsebuje kontrolnik CommandButton z imenom OKButton.
- Uporabniški obrazec vsebuje kontrolnik CommandButton z imenom CancelButton.
- Uporabniški obrazec vsebuje kontrolnik RefEdit z imenom RefEdit1.
Koda je shranjena v modulu VBA in prikazana tukaj. Ta koda naredi dve stvari: inicializira pogovorno okno z dodelitvijo naslova trenutne regije kontrolniku RefEdit in prikaže uporabniški obrazec.
Podkrepke celice()
' Zapustite, če delovni list ni aktiven
Če TypeName(ActiveSheet) <> "Worksheet" Nato zapustite Sub
' Izberite trenutno regijo
ActiveCell.CurrentRegion.Select
' Inicializiraj kontrolnik RefEdit
UserForm1.RefEdit1.Text = Izbira.Naslov
' Pokaži pogovorno okno
UserForm1.Show
Končni sub
Ko kliknete gumb V redu, se izvede naslednji postopek. Ta postopek opravi nekaj preprostega preverjanja napak, da se prepriča, ali je obseg, določen v kontrolniku RefEdit, veljaven.
Zasebni pod OKButton_Klik()
Ob napaki Pojdi na BadRange
Obseg(RefEdit1.Text).Font.Bold = True
Odstranite uporabniški obrazec1
Izhod Sub
BadRange:
MsgBox "Naveden obseg ni veljaven."
Končni sub
Če pride do napake v Excelu VBA (najverjetneje neveljavna specifikacija obsega v kontrolniku RefEdit), koda skoči na oznako BadRange in prikaže se sporočilo. Pogovorno okno ostane odprto, tako da lahko uporabnik izbere drug obseg.
Če je pridobivanje uporabniško izbranega obsega edina funkcija, ki jo izvaja vaš uporabniški obrazec, lahko stvari poenostavite z uporabo metode Application InputBox.