В някои случаи може да искате потребителят да избере диапазон на Excel VBA, докато се показва диалогов прозорец. Пример за този тип избор на диапазон на Excel VBA се появява в диалоговия прозорец Създаване на таблица, който се показва, когато изберете Начало → Вмъкване → Таблици → Таблица. Диалоговият прозорец Създаване на таблица има контрола за избор на диапазон, която съдържа предположението на Excel относно диапазона, който трябва да се преобразува, но можете да използвате тази контрола, за да промените диапазона, като изберете клетки в работния лист.
За да разрешите избор на диапазон на Excel VBA във вашия диалогов прозорец, добавете контрола RefEdit. Следният пример показва диалогов прозорец с адреса на диапазона на текущия регион, показан в контрола RefEdit. Текущият регион е блокът от непразни клетки, който съдържа активната клетка. Потребителят може да приеме или промени този диапазон. Когато потребителят щракне OK, процедурата прави диапазона удебелен.
Този диалогов прозорец позволява на потребителя да избере диапазон.
Този пример за Excel VBA предполага следното:
- Имате UserForm с име UserForm1.
- Потребителският формуляр съдържа контрола CommandButton с име OKButton.
- Потребителският формуляр съдържа контрола CommandButton с име CancelButton.
- Потребителският формуляр съдържа контрола RefEdit с име RefEdit1.
Кодът се съхранява във VBA модул и се показва тук. Този код прави две неща: инициализира диалоговия прозорец, като присвоява адреса на текущия регион на контролата RefEdit и показва UserForm.
Поддебели клетки()
' Излезте, ако работният лист не е активен
Ако TypeName(ActiveSheet) <> "Worksheet" След това излезте от Sub
' Изберете текущия регион
ActiveCell.CurrentRegion.Select
' Инициализирайте контролата RefEdit
UserForm1.RefEdit1.Text = Избор.Адрес
' Показване на диалоговия прозорец
UserForm1.Show
Край под
Следната процедура се изпълнява при щракване върху бутона OK. Тази процедура извършва някои прости проверки на грешки, за да се увери, че диапазонът, посочен в контролата RefEdit, е валиден.
Частен под OKButton_Click()
При грешка GoTo BadRange
Диапазон(RefEdit1.Text).Font.Bold = Вярно
Изтеглете UserForm1
Изход Sub
BadRange:
MsgBox "Посоченият диапазон не е валиден."
Край под
Ако възникне грешка в Excel VBA (най-вероятно невалидна спецификация на диапазон в контролата RefEdit), кодът прескача към етикета BadRange и се показва поле за съобщение. Диалоговият прозорец остава отворен, така че потребителят може да избере друг диапазон.
Ако получаването на избран от потребителя диапазон е единствената функция, изпълнявана от вашия UserForm, можете да опростите нещата, като използвате метода Application InputBox.