Екцел ВБА примери: примери уводних догађаја

Ако покушавате да добро разумете Екцел ВБА , вероватно би вам могло користити неколико примера да бисте развили то визуелно основно умеће. Овде ћете пронаћи неколико примера Екцел ВБА како бисте могли да се упознате са овим послом управљања догађајима.

Пример Екцел ВБА: догађај Опен за радну свеску

Један од најчешће коришћених Екцел ВБА догађаја је догађај Опенбоок Воркбоок. Претпоставимо да имате радну свеску коју користите сваки дан. Процедура Воркбоок_Опен у овом примеру се извршава сваки пут када се радна свеска отвори. Поступак проверава дан у недељи; ако је петак, код приказује поруку подсетника за вас.

Да бисте креирали Екцел ВБА процедуру која се извршава сваки пут када дође до догађаја отварања радне свеске, следите ове кораке:

Отворите Екцел радну свеску.
Било која Екцел радна свеска ће бити довољна.

Притисните Алт+Ф11 да активирате ВБЕ.

Пронађите радну свеску у прозору пројекта.

Двапут кликните на име пројекта да бисте приказали његове ставке, ако је потребно.

Двапут кликните на ставку ТхисВоркбоок.
ВБЕ приказује празан прозор кода за објекат ТхисВоркбоок.

У прозору кода изаберите Радна свеска са падајуће листе Објекат (лево).
ВБЕ уноси почетне и завршне изразе за Воркбоок_Опен процедуру.

Унесите следеће изјаве, тако да комплетна процедура догађаја изгледа овако:

Приватна под Радна свеска_Опен()
  Пригуши поруку као стринг
  Ако је дан у недељи (сада) = 6 Онда
    Мсг = "Данас је петак. Не заборавите да "
    Порука = Порука & "пошаљи ТПС извештај!"
    МсгБок Мсг
  Крај Ако
Енд Суб

Прозор кода би требао изгледати овако.

Екцел ВБА примери: примери уводних догађаја

Ова процедура за руковање догађајима се извршава када се отвори радна свеска.

Воркбоок_Опен се извршава аутоматски сваки пут када се радна свеска отвори. Користи ВБА функцију ВеекДаи за одређивање дана у недељи. Ако је петак (6. дан), оквир са поруком подсећа корисника да поднесе извештај. Ако није петак, ништа се неће десити.

Ако данас није петак, можда ће вам бити тешко да тестирате ову процедуру. Можете само да промените 6 тако да одговара данашњем стварном броју дана.

И наравно, ову процедуру можете модификовати на било који начин. На пример, следећа верзија приказује поруку сваки пут када се радна свеска отвори. Ово постаје досадно након неког времена.

Воркбоок_Опен процедура може да уради скоро све. Ови обрађивачи догађаја се често користе за следеће:

  • Приказ порука добродошлице (као што је у Франковој цоол радној свесци)
  • Отварање других радних свеска
  • Активирање одређеног радног листа у радној свесци
  • Подешавање прилагођених пречица

Ево коначног Екцел ВБА примера Воркбоок_Опен процедуре која користи функције ГетСеттинг и СавеСеттинг да би пратила колико пута је радна свеска отворена. Функција СавеСеттинг уписује вредност у Виндовс регистратор, а функција ГетСеттинг преузима ту вредност (погледајте систем помоћи за детаље). Следећи пример Екцел ВБА преузима број из регистра, повећава га, а затим га чува назад у регистратор. Такође говори кориснику вредност Цнт која одговара броју отварања радне свеске.

Приватна под Радна свеска_Опен()
  Дим Цнт Ас Лонг
  Цнт = ГетСеттинг("МиАпп", "Сеттингс", "Опен", 0)
  Цнт = Цнт + 1
  СавеСеттинг "МиАпп", "Сеттингс", "Опен", Цнт
  МсгБок "Ова радна свеска је отварана " & Цнт & " пута."
Енд Суб

Екцел ВБА примери: примери уводних догађаја

Коришћење руковаоца догађаја Воркбоок_Опен за праћење колико пута је радна свеска отворена.

Пример Екцел ВБА: догађај БефореЦлосе за радну свеску

Ево примера процедуре за руковање догађајима Екцел ВБА Воркбоок_БефореЦлосе, која се аутоматски извршава непосредно пре затварања радне свеске. Ова процедура се налази у прозору Цоде за објекат ТхисВоркбоок:

Приватна под радна свеска_БефореЦлосе(Откажи као Боолеан)
  Пригуши поруку као стринг
  Дим Анс Ас Лонг
  Дим ФНаме као стринг
  Мсг = "Да ли желите да направите резервну копију ове датотеке?"
  Анс = МсгБок(Мсг, вбИесНо)
  Ако је Анс = вбИес Онда
    ФНаме = "Ф:\БАЦКУП\" & ТхисВоркбоок.Наме
    ТхисВоркбоок.СавеЦопиАс ФНаме
  Крај Ако
Енд Суб

Ова рутина користи оквир за поруке да пита корисника да ли жели да направи резервну копију радне свеске. Ако је одговор да, код користи методу СавеЦопиАс да сачува резервну копију датотеке на диску Ф. Ако прилагодите ову процедуру за сопствену употребу, потребно је да промените диск јединицу и путању.

Екцел програмери често користе процедуру Воркбоок_БефореЦлосе да би почистили за собом. На пример, ако користите процедуру Воркбоок_Опен да промените нека подешавања када отворите радну свеску (на пример, сакријете статусну траку), једино је прикладно да вратите подешавања у првобитно стање када затворите радну свеску. Можете обавити ово електронско одржавање домаћинства помоћу процедуре Воркбоок_БефореЦлосе.

Када користите догађај Воркбоок_БефореЦлосе, имајте ово на уму: Ако затворите Екцел и било која отворена датотека је промењена од последњег чувања, Екцел приказује свој уобичајени оквир са поруком „Да ли желите да сачувате своје промене“. Кликом на дугме Откажи поништава се цео процес затварања. Али догађај Воркбоок_БефореЦлосе ће ионако бити извршен.

Пример Екцел ВБА: Догађај БефореСаве за радну свеску

Догађај БефореСаве, као што му име говори, покреће се пре него што се радна свеска сачува. Овај догађај се дешава када изаберете Датотека → Сачувај или Датотека → Сачувај као.

Следећа процедура, која се налази у прозору Цоде за објекат ТхисВоркбоок, демонстрира догађај ПреСаве. Рутина ажурира вредност у ћелији (ћелија А1 на Схеет1) сваки пут када се радна свеска сачува. Другим речима, ћелија А1 служи као бројач који прати колико је пута датотека сачувана.

Приватна под Радна свеска_БефореСаве(БиВал СавеАсУИ _
  Као Боолеан, Цанцел Ас Боолеан)
  Дим Цоунтер Ас Ранге
  Постави бројач = листови("Схеет1").Распон("А1")
  Цоунтер.Валуе = Цоунтер.Валуе + 1
Енд Суб

Приметите да процедура Воркбоок_БефореСаве има два аргумента: СавеАсУИ и Цанцел. Да бисте показали како ови аргументи функционишу, испитајте следећи макро, који се извршава пре него што се радна свеска сачува. Ова процедура покушава да спречи корисника да сачува радну свеску под другим именом. Ако корисник одабере Филе → Саве Ас, аргумент СавеАсУИ је Тачан.

Када се код изврши, он проверава вредност СавеАсУИ. Ако је ова променљива Тачна, процедура приказује поруку и поставља Цанцел на Тачно, чиме се отказује операција Саве.

Приватна под Радна свеска_БефореСаве(БиВал СавеАсУИ _
  Као Боолеан, Цанцел Ас Боолеан)
  Ако СавеАсУИ Онда
    МсгБок "Не можете да сачувате копију ове радне свеске!"
  Откажи = Тачно
  Крај Ако
Енд Суб

Имајте на уму да ова процедура неће спречити никога да сачува копију са другим именом. Ако неко заиста жели то да уради, може једноставно да отвори радну свеску са онемогућеним макроима. Када су макрои онемогућени, процедуре за руковање догађајима су такође онемогућене, што има смисла јер су, на крају крајева, макрои.

Leave a Comment

Обришите цртеже оловком и маркером на својим ПоверПоинт слајдовима

Обришите цртеже оловком и маркером на својим ПоверПоинт слајдовима

Ако сте користили оловку или маркер за цртање на ПоверПоинт слајдовима током презентације, можете да сачувате цртеже за следећу презентацију или да их избришете тако да ћете следећи пут када их покажете почети са чистим ПоверПоинт слајдовима. Пратите ова упутства да бисте избрисали цртеже оловком и маркером: Брисање линија један на […]

Садржај библиотеке стилова у СхареПоинт 2010

Садржај библиотеке стилова у СхареПоинт 2010

Библиотека стилова садржи ЦСС датотеке, датотеке Ектенсибле Стилесхеет Лангуаге (КССЛ) и слике које користе унапред дефинисане главне странице, изгледе страница и контроле у ​​СхареПоинт 2010. Да бисте лоцирали ЦСС датотеке у библиотеци стилова на локацији за објављивање: Изаберите Радње сајта→Прикажи Сав садржај сајта. Појављује се садржај сајта. Библиотека Стил налази се у […]

Форматирајте бројеве у хиљадама и милионима у Екцел извештајима

Форматирајте бројеве у хиљадама и милионима у Екцел извештајима

Немојте претрпати своју публику огромним бројевима. У Мицрософт Екцел-у можете побољшати читљивост својих контролних табли и извештаја тако што ћете форматирати своје бројеве тако да се појављују у хиљадама или милионима.

Како делити и пратити СхареПоинт локације

Како делити и пратити СхареПоинт локације

Научите како да користите СхареПоинт алатке за друштвено умрежавање које омогућавају појединцима и групама да комуницирају, сарађују, деле и повезују се.

Како претворити датуме у јулијанске формате у Екцелу

Како претворити датуме у јулијанске формате у Екцелу

Јулијански датуми се често користе у производним окружењима као временска ознака и брза референца за број серије. Ова врста кодирања датума омогућава продавцима, потрошачима и услужним агентима да идентификују када је производ направљен, а тиме и старост производа. Јулијански датуми се такође користе у програмирању, војсци и астрономији. Различит […]

Како да направите приступну веб апликацију

Како да направите приступну веб апликацију

Можете да креирате веб апликацију у програму Аццесс 2016. Дакле, шта је уопште веб апликација? Па, веб значи да је онлајн, а апликација је само скраћеница за „апликацију“. Прилагођена веб апликација је апликација базе података на мрежи којој се приступа из облака помоћу претраживача. Ви правите и одржавате веб апликацију у верзији за десктоп […]

Трака за брзо покретање у СхареПоинт 2010

Трака за брзо покретање у СхареПоинт 2010

Већина страница у систему СхареПоинт 2010 приказује листу веза за навигацију на траци за брзо покретање дуж леве стране странице. Трака за брзо покретање приказује везе ка садржају истакнутог сајта као што су листе, библиотеке, сајтови и странице за објављивање. Трака за брзо покретање укључује две веома важне везе: Линк за сав садржај сајта: […]

Шта значе поруке о грешци решавача у Екцел-у?

Шта значе поруке о грешци решавача у Екцел-у?

За једноставне проблеме, Солвер у Екцел-у обично брзо проналази оптималне вредности променљиве Решавача за функцију циља. Али, у неким случајевима, Солвер има проблема да пронађе вредности променљиве Солвера које оптимизују функцију циља. У овим случајевима, Солвер обично приказује поруку или поруку о грешци која описује или расправља о проблему који […]

Како уклонити израчуната поља и ставке из Екцел заокретне табеле

Како уклонити израчуната поља и ставке из Екцел заокретне табеле

Можете лако да уклоните израчуната поља и ставке из Екцел заокретне табеле. Да бисте уклонили израчунато поље, кликните на ћелију у изведеној табели. Затим кликните на команду Поља, ставке и скупови на картици Анализа и изаберите Израчунато поље из подменија који се појави. Када Екцел прикаже дијалог Уметање израчунатог поља, изаберите […]

Како означити у СхареПоинт-у

Како означити у СхареПоинт-у

Ознаке су кључне речи које додељујете садржају. Означавање страница за дељење са другима је обележавање на друштвеним мрежама, веома је популарно на вебу и лако је у СхареПоинт-у. Ако сте икада користили сајт као што је Делициоус, већ знате како функционише обележавање на друштвеним мрежама. Како све више људи додељује исте ознаке, ознаке постају начин на који […]