Доброго времени суток, уважаемые читатели. В некоторых сценариях требуется, чтобы макрос взаимодействовал с пользователем. К примеру, можно написать макрос, который приостанавливает свою работу в тот момент, когда пользователю необходимо указать некий диапазон ячеек. Для этого используется метод InputBox.
Важно различать метод InputBox и функцию VBA InputBox. Несмотря на схожие названия, они представляют собой разные элементы.
Приведенная на скриншоте ниже процедура показывает, как остановить макрос, предоставив пользователю возможность выбора ячейки. После этого формула =ОКРУГЛВВЕРХ(СЛЧИС()*10;0) автоматически вставляется в каждую ячейку выделенного диапазона.
Макрос я назначил на кнопку.
В данной процедуре важным моментом является установка аргументу Type значения 8, что представляет собой ссылку на ячейку в виде объекта Range. Также обратите внимание на использование директивы On Error Resume Next, которая игнорирует ошибку, возникающую при нажатии пользователем кнопки "Отмена". Если произошла отмена, переменная объекта ВыбранныйДиапазон не получает значения, и отображается окно сообщения с текстом "Вы отменили действие".
В случае если отменили:
Для информации: если поставить курсор на слово "InputBox" и нажать F1 - появится описание параметров.