Найти тему
VBA Excel с нуля

VBA Excel № 110. Останавливаем макрос для определения диапазона. InputBox.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

Доброго времени суток, уважаемые читатели. В некоторых сценариях требуется, чтобы макрос взаимодействовал с пользователем. К примеру, можно написать макрос, который приостанавливает свою работу в тот момент, когда пользователю необходимо указать некий диапазон ячеек. Для этого используется метод InputBox.

Важно различать метод InputBox и функцию VBA InputBox. Несмотря на схожие названия, они представляют собой разные элементы.

Приведенная на скриншоте ниже процедура показывает, как остановить макрос, предоставив пользователю возможность выбора ячейки. После этого формула =ОКРУГЛВВЕРХ(СЛЧИС()*10;0) автоматически вставляется в каждую ячейку выделенного диапазона.

Макрос я назначил на кнопку.

Скриншот с моего ноутбука
Скриншот с моего ноутбука

В данной процедуре важным моментом является установка аргументу Type значения 8, что представляет собой ссылку на ячейку в виде объекта Range. Также обратите внимание на использование директивы On Error Resume Next, которая игнорирует ошибку, возникающую при нажатии пользователем кнопки "Отмена". Если произошла отмена, переменная объекта ВыбранныйДиапазон не получает значения, и отображается окно сообщения с текстом "Вы отменили действие".

Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука

В случае если отменили:

Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука

Для информации: если поставить курсор на слово "InputBox" и нажать F1 - появится описание параметров.

Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука
Скриншот с моего ноутбука

Наука
7 млн интересуются