Я очень новичок в vba. Ну, я пишу вспомогательную процедуру с аргументами, такими как Sub addcell (целевой объект ByVal как диапазон) и записывать некоторые утверждения. Мой запрос заключается в том, что для запуска этой процедуры автоматически без каких-либо действий и без использования командной кнопки. Есть ли способ. Пожалуйста, помогите мне с этим.Как выполнить процедуру sub
ответ
С левой стороны редактора Visual Basic у вас есть панель Project Explorer; это показывает все объекты в вашей книге. Вы заметите, что по умолчанию в любой книге по крайней мере два объекта - объект ThisWorkbook и объект Sheet для каждого рабочего листа в рабочей книге. Код, который вы хотите запустить автоматически, должен быть помещен либо в эту книгу, либо в соответствующий объект Sheet.
Если дважды нажать на любом из рабочей книги или рабочего листа объектов, то откроется окно кода с указанием коды в настоящее время хранящуюся в этом объекте. В верхней части страницы находятся два выпадающих меню, которые обычно по умолчанию имеют значение «(Общие)» и «(Объявления)». Откройте раскрывающийся список «(Общий)», чтобы получить список объектов - обычно вы увидите либо «Рабочий лист», либо «Рабочую книгу» в зависимости от объекта, который вы открыли.
Выберите объект, затем «(декларации)» выпадающий даст вам список событий. У них есть довольно описательные имена, такие как «Изменить», «SelectionChange», «Calculate», «WorkbookOpen» и т. Д. Выберите нужное событие, и новый суб будет автоматически создан. Поместите свой код внутри этого суб, и он будет выполняться всякий раз, когда этот триггер будет достигнут.
ОЧЕНЬ ОСТОРОЖНО. Если, например, вы помещаете код в событие «Изменение» листа, который заканчивает изменение листа, вы можете попасть в непроизводительный цикл листа, который постоянно меняет себя и снова запускает себя бесконечно.
Чтобы добавить к этому - вы можете избежать рекурсии только таргетинг на определенную ячейку или диапазон или путем отключения событий и повторного включения с помощью 'Application.EnableEvents = False' в начале и' Application.EnableEvents = True' в конце – Tom
Спасибо, ребята. Было очень приятно видеть, как он работает сейчас. Продолжайте помогать. Спасибо и kadrinchey (спасибо вам, на языке в Бутане) – user7561012
Когда вы хотите его запустить? Взгляните на [Рабочие листы] (https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet_events.aspx) – Tom