V niektorých prípadoch možno budete chcieť, aby používateľ počas zobrazenia dialógového okna vybral rozsah Excel VBA. Príklad tohto typu výberu rozsahu Excel VBA sa nachádza v dialógovom okne Vytvoriť tabuľku, ktoré sa zobrazí, keď vyberiete Domov → Vložiť → Tabuľky → Tabuľka. Dialógové okno Vytvoriť tabuľku obsahuje ovládací prvok na výber rozsahu, ktorý obsahuje odhad Excelu týkajúci sa rozsahu, ktorý sa má skonvertovať – tento ovládací prvok však môžete použiť na zmenu rozsahu výberom buniek v hárku.
Ak chcete povoliť výber rozsahu Excel VBA v dialógovom okne, pridajte ovládací prvok RefEdit. Nasledujúci príklad zobrazuje dialógové okno s adresou rozsahu aktuálnej oblasti zobrazenou v ovládacom prvku RefEdit. Aktuálna oblasť je blok neprázdnych buniek, ktorý obsahuje aktívnu bunku. Používateľ môže tento rozsah prijať alebo zmeniť. Keď používateľ klikne na tlačidlo OK, v procedúre bude rozsah tučný.
Toto dialógové okno umožňuje používateľovi vybrať rozsah.
Tento príklad Excel VBA predpokladá nasledovné:
- Máte UserForm s názvom UserForm1.
- UserForm obsahuje ovládací prvok CommandButton s názvom OKButton.
- UserForm obsahuje ovládací prvok CommandButton s názvom CancelButton.
- UserForm obsahuje ovládací prvok RefEdit s názvom RefEdit1.
Kód je uložený v module VBA a je zobrazený tu. Tento kód robí dve veci: inicializuje dialógové okno priradením adresy aktuálnej oblasti ovládaciemu prvku RefEdit a zobrazí UserForm.
Sub BoldCells()
' Ukončite, ak pracovný hárok nie je aktívny
Ak TypeName(ActiveSheet) <> "Worksheet" Potom Exit Sub
' Vyberte aktuálny región
ActiveCell.CurrentRegion.Select
Inicializujte ovládací prvok RefEdit
UserForm1.RefEdit1.Text = Selection.Address
' Zobraziť dialógové okno
UserForm1.Show
End Sub
Po kliknutí na tlačidlo OK sa vykoná nasledujúci postup. Tento postup vykoná jednoduchú kontrolu chýb, aby ste sa uistili, že rozsah špecifikovaný v ovládacom prvku RefEdit je platný.
Private Sub OKButton_Click()
Pri chybe GoTo BadRange
Rozsah(RefEdit1.Text).Font.Bold = True
Uvoľnite UserForm1
Ukončiť Sub
BadRange:
MsgBox "Zadaný rozsah nie je platný."
End Sub
Ak sa v Exceli VBA vyskytne chyba (pravdepodobne neplatná špecifikácia rozsahu v ovládacom prvku RefEdit), kód preskočí na štítok BadRange a zobrazí sa okno s hlásením. Dialógové okno zostane otvorené, takže používateľ môže vybrať iný rozsah.
Ak je získanie rozsahu vybratého používateľom jedinou funkciou, ktorú vykonáva váš UserForm, môžete veci zjednodušiť použitím metódy Application InputBox.