Снимање макронаредбе у програму Екцел - Чланци ТецхТВ

Ово су моје белешке о емисији са мог појављивања у епизоди 33 позива за помоћ на ТецхТВ Цанада.

ВБА макро снимач

Свака копија Екцел-а која се продаје од 1995. године укључује невероватно моћан Висуал Басиц за апликације (ВБА) који се крије иза ћелија. Ако имате Екцел, имате ВБА.

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

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

Траци Сирстад и ја написали смо ВБА и Мацрос Мицрософт Екцел 2016 како бисмо вам помогли да разумете ограничења снимљеног кода и научили како да поправите снимљени код у нешто што ће радити сваки пут.

У емисији сам демонстрирао поступак снимања макронаредбе која ће савршено функционисати ако знате како да користите дугме Релативна референца. Неко ми је дао Екцел радни лист са стотинама имена и адреса. Желели су поштанске етикете. Ако сте икада користили функцију спајања поште Мицрософт Ворд, знате да вам је потребно свако поље у новој колони на радном листу. Уместо тога, на овом радном листу подаци су се спуштали у колону А.

Процес поправљања једне налепнице прилично је напоран.

  • Почните са показивачем ћелије на имену у колони А.
  • Притисните стрелицу надоле да бисте се преселили на адресу
  • Цтрл + к за исецање
  • Стрелица нагоре, стрелица надесно да бисте се померили у колону Б поред имена
  • Цтрл + в за лепљење
  • Двапут стрелица надоле, стрелица лево једном да бисте се преселили у град
  • Цтрл + к за исецање
  • Два пута стрелица нагоре, стрелица надесно три пута
  • Цтрл + в за лепљење
  • Двапут лева стрелица, једном стрелица надоле да бисте прешли на сада празан ред.
  • Држите притиснут тастер схифт док два пута притиснете стрелицу надоле
  • Алт + едр за брисање празних редова
  • Стрелица нагоре и надоле да бисте поново изабрали само име.

Ево анимације која приказује ове кораке:

Постављање Екцел-а на Аллов Мацрос

Иако свака копија програма Екцел садржи ВБА, Мицрософт подразумевано искључује могућност покретања макронаредби. Треба да извршите једнократно прилагођавање како бисте омогућили покретање макронаредби. Отворите Екцел. У менију одаберите Алати> Макро> Сигурност. Ако је ниво заштите макроа тренутно постављен на висок, промените га у Средњи.

Припрема за снимање макронаредбе

Размислите о корацима неопходним за постизање задатка. Желите да будете сигурни да започињете показивачем ћелије на имену, а завршавате њиме на следећем имену. Ово ће вам омогућити да више пута опетовано покренете макро. Кад припремите кораке, укључите макро рекордер. У менију одаберите Алати> Макро> Сними нови макро.

Ако ћете овај макро користити много дана, треба да му дате корисно име. Ако је једнократни макро за аутоматизацију једнократног задатка, онда је остављање имена Макронаредбе као Мацро1 вероватно у реду. Овде је важно поље тастерске пречице. Ако креирате макро за једнократну употребу, доделите му макро пречици као што је Цтрл + а - прилично је лако притиснути Цтрл + а више пута, јер су тастери близу један другом. Ако ћете креирати макро који ћете користити свакодневно, тада желите да доделите макро кључу који већ није важна комбинација пречица. Цтрл + ј или Цтрл + к су добар избор.

Макрони за једнократну употребу треба да се чувају у ТхисВоркбоок. Ако је потребно да макро користите више пута на многим различитим радним свескама, макро можете да сачувате у личној радној свесци макронаредби.

Сада вам је представљена најситнија трака са алаткама у целом програму Екцел; трака са алаткама Заустави снимање. Има само две иконе и изгледа овако:

Ако вам се ова трака с алатима нађе на путу, не притискајте Кс да бисте је затворили. Уместо тога, ухватите плаву траку и превуците траку са алаткама на ново место. Чин померања траке са алаткама није забележен у макронаредби. Ако случајно затворите траку са алаткама, вратите је помоћу Поглед> Траке са алаткама> Заустави снимање. Ова акција ће, међутим, бити забележена.

Прво дугме на траци са алаткама је дугме „Заустави снимање“. Ово је само по себи разумљиво. Када завршите са снимањем макронаредбе, притисните траку са алаткама за заустављање снимања.

Важније (и ретко разумљиво) дугме је дугме „Релативна референца“.

У нашем тренутном примеру морате притиснути дугме Релативна референца пре него што започнете. Ако снимате макро са укљученим релативним референцама, Екцел ће снимити кораке попут овог:

  • Помери једну ћелију надоле
  • Исеци тренутну ћелију
  • Помери једну ћелију горе
  • Помери једну ћелију удесно
  • Налепи
  • итд.

Ако бисте уместо тога снимили макро без релативних референци, макро би снимио ове кораке:

  • Преместите се у ћелију А4
  • Исеците ћелију А4
  • Преместите се у ћелију А3
  • Преместите се у ћелију Б3
  • Налепите у ћелију Б3
  • итд.

Ово би било ужасно погрешно - потребан нам је макро за рад на ћелијама које су 1 и 2 ћелије од почетне тачке макроа. Док више пута изводите макро, почетна тачка ће бити ред 4, ред 5, ред 6 итд. Снимање макронаредбе без укључених релативних референци би имало да се макро увек покреће у реду 3 као почетна тачка.

Пратите ове кораке:

  • Изаберите дугме Релативна референца на траци са алаткама Заустави снимање
  • Показивач ћелије би већ требао бити на имену у колони А.
  • Притисните стрелицу надоле да бисте се преселили на адресу
  • Цтрл + к за исецање
  • Стрелица нагоре, стрелица надесно да бисте се померили у колону Б поред имена
  • Цтрл + в за лепљење
  • Двапут стрелица надоле, стрелица лево једном да бисте се преселили у град
  • Цтрл + к за исецање
  • Два пута стрелица нагоре, стрелица надесно три пута
  • Цтрл + в за лепљење
  • Двапут лева стрелица, једном стрелица надоле да бисте прешли на сада празан ред.
  • Држите притиснут тастер схифт док два пута притиснете стрелицу надоле
  • Алт + едр за брисање празних редова
  • Стрелица нагоре и стрелица надоле да бисте изабрали следеће име на листи.
  • Притисните траку са алаткама Стоп Рецординг (Заустави снимање)
  • Сачувајте радну свеску
  • Тестирајте макронаредбу притиском на тастер пречице додељен горе. Требало би савршено да поправи следеће име на листи

Једном када видите да макро ради по жељи, можете притиснути Цтрл + а да бисте брзо поправили неколико имена у секунди. Цела листа од 500 имена може се поправити за минут или два.

Бонус савет - није у емисији

Макро можете лако умотати у једноставну петљу како би поправио свих 500 имена, а да не морате притиснути Цтрл + неколико стотина пута.

Притисните тастер Алт + Ф11 да бисте отворили уређивач макронаредби.

Ако не видите окно Пројецт - ВБАПројецт, притисните Цтрл + р.

Кликните десним тастером миша на Модуле1 и одаберите Виев Цоде. Видећете код који изгледа овако:

Сада не морате да разумете шта овај код ради, али знате да желимо да покренемо све у том макроу једном за свако име које имамо. Ако знате да постоје 462 имена, тада можете додати 2 реда како бисте 462 пута покренули код. На врх макронаредбе убаците нови ред са речима „ For i = 1 to 462“. На дну макронаредбе убаците линију која каже „ Next i“. Ово говори ВБА-у да покрене код унутар 462 пута.

Закључак

После овог једноставног макронаредбе, показао сам пример у емисији врло сложеног макронаредбе. Овај макро креирао је стожерне табеле и графиконе за 46 одељења компаније. Овај извештај је трајао 40 сати сваког месеца. ВБА макро сада ради и креира свих 46 извештаја за мање од 2 минута.

Књига ВБА и макронаредбе Мицрософт Екцел 2016 довешће вас до криве учења, тако да ћете од снимања једноставних макронаредби попут овог доћи до покретања врло сложених извештаја који вам могу уштедети стотине сати годишње. Наравно, ако не желите да учите ВБА, унајмите Екцел консултанта који ће за вас направити извештај.

Занимљиви Чланци...