Током ваших ВБА пракси, имали бисте потребу да покрећете макрое када се промени одређени опсег или ћелија. У том случају, за покретање макроа када се изврши промена циљног опсега, користимо догађај цханге. Догађаји у ВБА омогућавају нам покретање макроа када се догоди одређени догађај.
Синтакса Догађај промене опсега ВБА
Приватни под -радни лист_Промени (БиВал циљ као опсег) Ако се не пресече (циљ, опсег ("ваш_друга")) није ништа Затим позовите иоур_мацро Енд Иф Енд Суб
Догађај не ради у модулима. Морате их записати у објекте (радни лист, графиконе, радну свеску).
Латини имају пример да науче како да покрену макро када се изврши промена у наведеном опсегу.
Пример: Покрените ВБА макро када се изврши промена у опсегу А2: А100
Прво бирамо лист на којем ће се догађај догодити. Двапут кликните на тај лист у ВБА едитору и копирајте доњи код или генерички код изнад и унесите измене према вашим захтевима.
У овом примеру желим да покренем макро/ВБА код када се изврши промена у опсегу А2: А100 на листу 2. Да бих то урадио, двапут кликнем на лист2 у истраживачу пројеката. Отвара страницу за кодирање тог листа. Можете да кликнете десним тастером миша на лист и кликнете на код за приказ да бисте урадили исто.
Морам да користим догађај промене. За то користимо подразумевану потпрограму Ворксхеет_Цханге (БиВал Таргет Ас Ранге). Покреће се када се изврши наведена промена. Дакле, наш код је следећи:
Приватни под радни лист_Промени (БиВал циљ као опсег) Ако се не пресече (циљ, опсег ("А2: А100")) није ништа Затим позовите ТестЕвент Енд Иф Енд Суб
Када направите промене у опсегу А2: А100 на Схеет2, потпрограм ТестЕвент ће бити позван, као што можете видети на горњој слици.
ТестЕвент је јавна потпрограм у модулу 2. Једноставно се појави порука да догађај ради.
Суб ТестЕвент () МсгБок "Догађај ради!" Енд Суб
Како то функционише?
Поставили смо услов:
Ако се не пресеца (циљ, домет ("А2: А100")) онда није ништа
Овде Интерсецт (Таргет, Ранге ("А2: А100")) Ис Нотхинг враћа Труе ако се не промени у опсегу А2: А100. Пре ове наредбе стављамо оператор Нот који обрће излаз који даје "Интерсецт (Таргет, Ранге (" А2: А100 "))". Дакле, ако се не изврши промена у опсегу А2: А100, израз враћа Фаллс и под ТестЕвент не прима позив. Ако промените било коју ћелију у опсегу А2: А100, израз ће вратити Труе и догодит ће се догађај. И то се овде дешава.
Белешка: У овај блок можете ставити било коју потпрограм. Може бити из било ког модула. Али то би требала бити јавна потпрограм. Распон можете подесити у било којој мери. Цео лист је граница.
Па да, момци, овако можете позвати потпрограм или покренути макро/ВБА код када се изврши промјена у наведеном распону. Био је то основни пример догађаја. Овај догађај ће се покренути само када је промена заснована на тексту. Под текстовним, мислим ако догађај напишете у ћелије или избришете, догађај ће се покренути. Ако промените обликовање ћелија, неће се покренути. Постоје и друге методе за то.
Надам се да је било од помоћи. Ако имате било каквих питања везаних за ову ВБА тему или било коју другу тему везану за Екцел, обавестите ме у доњем одељку за коментаре. И погледајте наше друге повезане и популарне постове наведене испод.
Покрени макро када дође до било какве промене на листу| Дакле, за покретање вашег макроа кад год се лист ажурира, користимо ВБА догађаје радног листа.
Најједноставнији ВБА код за означавање тренутног реда и колоне помоћу| Користите овај мали ВБА исечак да означите тренутни ред и колону листа.
Догађаји радног листа у програму Екцел ВБА| Догађај радног листа је заиста користан када желите да се ваши макрои покрену када се на листу појави одређени догађај.
Популарни чланци:
50 Екцел пречица за повећање продуктивности | Убрзајте свој задатак. Ових 50 пречица ће учинити да радите још брже на Екцелу.
Функција ВЛООКУП у Екцелу | Ово је једна од најчешће кориштених и популарних функција програма Екцел која се користи за тражење вриједности из различитих распона и листова.
ЦОУНТИФ у програму Екцел 2016 | Бројте вредности са условима користећи ову невероватну функцију. Не морате филтрирати податке да бисте рачунали одређену вредност. Цоунтиф функција је неопходна за припрему ваше контролне табле.
Како се користи функција СУМИФ у програму Екцел | Ово је још једна битна функција контролне табле. Ово вам помаже да сумирате вредности под одређеним условима.