Како да снимате макро во Excel

  • Споделете Го Ова
Michael Brown

Чекор-по-чекор упатство за почетници да снимаат, прегледуваат, стартуваат и зачувуваат макро. Ќе научите и некои внатрешни механики за тоа како функционираат макроата во Excel.

Макроата се одличен начин за автоматизирање на повторливите задачи во Excel. Ако се откриете дека ги правите истите работи одново и одново, снимајте ги вашите потези како макро и доделете кратенка на тастатурата. И сега, можете да ги извршите сите снимени дејства автоматски, со едно притискање на копче!

    Како да снимате макро во Excel

    Како и другите VBA алатки, макроата на Excel се наоѓа на табулаторот Програмер , кој е стандардно скриен. Значи, првото нешто што треба да направите е да го додадете јазичето Developer на вашата лента на Excel.

    За да снимате макро во Excel, извршете ги овие чекори:

    1. На Програмер табот, во групата Код , кликнете на копчето Снимај макро .

      Алтернативно, кликнете на Сними Копче макро на левата страна од лентата Статус :

      Ако сакате да работите со тастатурата наместо со глувчето, притиснете го следново низа на копчиња Alt , L , R (еден по еден, не сите копчиња истовремено).

    2. Во полето за дијалог Сними макро што се појавува, конфигурирајте ги главните параметри на вашето макро:
      • Во Макро име , внесете го името за вашето макро. Обидете се да го направите значајно и описно, па подоцна ќе можете брзо да го најдете макрото во списокот.

        Вови заштедува многу време и нерви правејќи ја вашата крива на учење помазна, а макроата поефикасни.

        Користете релативни референци за макро снимање

        Стандардно, Excel користи апсолутна референцирање за снимање макро. Тоа значи дека вашиот VBA код секогаш ќе се однесува на истите ќелии што сте ги избрале, без разлика каде се наоѓате во работниот лист кога го извршувате макрото.

        Сепак, можно е да се промени стандардното однесување во релативно референцирање . Во овој случај, VBA нема да ги кодира адресите на ќелиите, туку ќе работи релативно на активната (тековно избрана) ќелија.

        За да снимите макро со релативно референцирање, кликнете на Користи <8 Копчето>Релативни референци на табулаторот Програмер . За да се вратите на апсолутното референцирање, повторно кликнете на копчето за да го исклучите.

        На пример, ако снимате поставување табела со стандардно апсолутна референца, вашето макро секогаш ќе рекреирајте ја табелата на истото место (во овој случај, Заглавие во А1, Тачка1 во А2, Точка2 во А3).

        Под Опсег Absolute_Referencing() ("A1"). Изберете ActiveCell.FormulaR1C1 = Опсег на „Заглавие“ ( „A2“ ). Изберете ActiveCell.FormulaR1C1 = Опсег „Item1“ ( „A3“ ). Изберете ActiveCell.FormulaR1C1 = "Item2" End Sub

        Ако го снимате истото макро со релативно референцирање, табелата ќе се креира каде и да го ставите курсорот пред да го извршите макрото ( Header воактивна ќелија, Item1 во долуната ќелија и така натаму).

        Sub Relative_Referencing() ActiveCell.FormulaR1C1 = „Header“ ActiveCell.Offset(1, 0).Range( „A1“ ). Изберете ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Изберете ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Изберете End Sub

        Забелешки:

        • Кога користите релативни референци, задолжително изберете ја почетната ќелија пред да започнете да снимате макро.
        • Релативното референцирање не работи за сè. Некои функции на Excel, на пр. за конвертирање опсег во табела, потребни се апсолутни референци.

        Изберете опсези со помош на кратенки на тастатурата

        Кога избирате ќелија или опсег на ќелии користејќи го глувчето или копчињата со стрелки, Excel ги пишува адресите на ќелиите. Следствено, секогаш кога ќе извршите макро, снимените операции ќе се вршат токму на истите ќелии. Ако тоа не е она што го сакате, користете кратенки за избирање ќелии и опсези.

        Како пример, ајде да снимиме макро што поставува специфичен формат (д-ммм-гг) за датумите во табелата подолу:

        За ова, ги снимате следните операции: притиснете Ctrl + 1 за да го отворите дијалогот Форматирај ќелии > Датум > изберете формат > ДОБРО. Ако вашата снимка вклучува избирање опсег со глувчето или копчињата со стрелки, Excel ќе го произведе следниот VBA код:

        Sub Date_Format() Range( "A2:B4" ). ИзберетеSelection.NumberFormat = "d-mmm-yy" End Sub

        Со извршување на горното макро ќе се избере опсегот A2:B4 секој пат. Ако додадете уште неколку редови на вашата табела, тие нема да бидат обработени од макрото.

        Сега, да видиме што ќе се случи кога ќе ја изберете табелата со помош на кратенка.

        Ставете го курсорот во горната лева ќелија на целниот опсег (A2 во овој пример), започнете со снимање и притиснете Ctrl + Shift + End . Како резултат на тоа, првата линија од кодот ќе изгледа вака:

        Опсег(Избор, ActiveCell.SpecialCells(xlLastCell)). Изберете

        Овој код ги избира сите ќелии од активната ќелија до последната користена ќелија, што значи дека сите нови податоци ќе бидат вклучени во изборот автоматски.

        Алтернативно, можете да користите комбинации Ctrl + Shift + стрелки:

        • Ctrl + Shift + стрелка надесно за да ги изберете сите користени ќелии надесно, проследено со
        • Ctrl + Shift + стрелка надолу за да ги изберете сите користени ќелии надолу.

        Ова ќе генерира две линии на код наместо една, но резултатот ќе биде ист - ќе бидат избрани сите ќелии со податоци надолу и десно од активната ќелија:

        Опсег(Избор, Избор. Крај ( xlДесно)). Изберете Опсег (Избор, Избор. Крај (xlНадолу)). Изберете

        Снимајте макро за избор наместо специфични ќелии

        Горениот метод (т.е. избирање на сите користени ќелии почнувајќи од активната ќелија) функционира одлично за извршување на истите операции на целата табела. Во некоиМеѓутоа, во ситуации, можеби ќе сакате макрото да обработува одреден опсег наместо целата табела.

        За ова, VBA го обезбедува објектот Избор кој се однесува на моментално избраните ќелии(и) . Повеќето работи што можат да се направат со опсег, може да се направат и со селекција. Каква предност ви дава тоа? Во многу случаи, воопшто не треба да избирате ништо додека снимате - само напишете макро за активната ќелија. И потоа, изберете кој опсег што го сакате, стартувајте го макрото и ќе манипулира со целиот избор.

        На пример, ова макро со една линија може да форматира било кој број избрани ќелии како проценти:

        Под процент_формат () Selection.NumberFormat = "0,00%" Краен под

        Планирајте внимателно што снимате

        Мајкрософт Excel макро рекордер ја снима речиси целата ваша активност, вклучувајќи ги и грешките што ги правите и поправате. На пример, ако притиснете Ctrl + Z за да вратите нешто, тоа исто така ќе се снима. На крајот, може да завршите со многу непотребен код. За да го избегнете ова, или уредете го кодот во уредникот VB или престанете да снимате, избришете дефицитарно макро и започнете со снимање одново.

        Направете резервна копија или зачувајте работна книга пред да извршите макро

        Резултатот на Excel макроата не може да се отповикаат. Значи, пред првото извршување на макрото, има смисла да креирате копија од работната книга или барем да ја зачувате вашата тековна работа за да спречите неочекувани промени. Ако макрото направи нешто погрешно,едноставно затворете ја работната книга без зачувување.

        Зачувајте ги снимените макроа кратки

        Кога автоматизирате низа различни задачи, може да бидете во искушение да ги снимите сите во едно макро. Постојат две главни причини да не го направите ова. Прво, тешко е непречено да се снима долго макро без грешки. Второ, големите макроа се тешки за разбирање, тестирање и дебагирање. Затоа, добра идеја е да се подели големо макро на неколку делови. На пример, кога креирате сумарна табела од повеќе извори, можете да користите едно макро за увезување информации, друго за консолидирање податоци и трето за форматирање на табелата.

        Се надевам дека ова упатство ви даде одреден увид за тоа како да снимате макро во Excel. Како и да е, ви благодарам што прочитавте и се надевам дека ќе се видиме на нашиот блог следната недела!

        макро имиња, можете да користите букви, бројки и долни црти; првиот знак мора да биде буква. Празни места не се дозволени, па затоа треба или да задржите име со еден збор, почнувајќи од секој дел со голема буква (на пр. MyFirstMacro ) или да ги одделите зборовите со долни црти (на пр. My_First_Macro ).
      • Во полето Копче за кратенка , напишете која било буква за да доделите кратенка на тастатурата на макрото (опционално).

        Дозволени се и големи и мали букви, но би било мудро да користите големи комбинации на копчиња ( Ctrl + Shift + буква ) бидејќи макро-кратенките ги отфрлаат сите стандардни кратенки на Excel додека работната книга што го содржи макрото е отворена. На пример, ако доделите Ctrl + S на макро, ќе ја изгубите можноста да ги зачувате датотеките на Excel со кратенка. Доделувањето Ctrl + Shift + S ќе ја задржи стандардната кратенка за зачувување.

      • Од паѓачката листа Зачувај макро во , изберете каде сакате да го зачувате вашето макро:
        • Лична работна книга за макро – го складира макрото во посебна работна книга наречена Personal.xlsb . Сите макроа зачувани во оваа работна книга се достапни секогаш кога користите Excel.
        • Оваа работна книга (стандардно) - макрото ќе се зачува во тековната работна книга и ќе биде достапно кога повторно ќе ја отворите работната книга или споделете ја со други корисници.
        • Нова работна книга – создава нова работна книга и го снима макрото во таа работна книга.
      • ВоПолето Опис , напишете краток опис на она што го прави вашето макро (опционално).

        Иако ова поле е изборно, би препорачал секогаш да давате краток опис. Кога креирате многу различни макроа, тоа ќе ви помогне брзо да разберете што прави секое макро.

      • Кликнете OK за да започнете со снимање на макрото.

    3. Извршете ги дејствата што ги сакате за автоматизирање (видете го примерот на макрото за снимање).
    4. Кога ќе завршите, кликнете на копчето Стоп за снимање на картичката Програмер :

      Или аналогното копче на лентата Статус :

    Пример за снимање макро во Excel

    За да видиме како функционира во пракса, ајде да снимиме макро што применува одредено форматирање на избраните ќелии. За ова, направете го следново:

    1. Изберете една или повеќе ќелии што сакате да ги форматирате.
    2. На картичката Програмер или Статус лента, кликнете Снимање макро .
    3. Во полето за дијалог Снимање макро , конфигурирајте ги следните поставки:
      • Именувајте го макрото Форматирање_заглавје (бидејќи ќе ги форматираме заглавјата на колоните).
      • Поставете го курсорот во полето Копче за кратенки и притиснете ги копчињата Shift + F истовремено. Ова ќе ја додели кратенката Ctrl + Shift + F на макрото.
      • Изберете да го зачувате макрото во оваа работна книга.
      • За Опис , користете го следниов текст објаснувајќи што макрото прави: Го прави текстот задебелен, додава боја за пополнување и центрира .
      • Кликнете OK за да започнете со снимање.

    4. Форматирајте ги претходно избраните ќелии како што сакате. За овој пример, користиме задебелено форматирање на текст, светло сина боја за полнење и порамнување во центарот.

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

    5. Кликнете Стоп за снимање или на картичката Програмер или на лентата Статус .

    Тоа е тоа! Вашето макро е снимено. Сега, можете да изберете кој било опсег на ќелии во кој било лист, да притиснете на доделената кратенка ( Ctrl+ Shift + F ) и вашето приспособено форматирање веднаш ќе се примени на избраните ќелии.

    Како да работите со снимени макроа во Excel

    Сите главни опции кои Excel ги обезбедува за макроа може да се пристапат преку полето за дијалог Macro . За да го отворите, кликнете на копчето Макроа на картичката Програмер или притиснете ја кратенката Alt+ F8.

    Во полето за дијалог што се отвора, можете да прегледате листа на макроа достапни во сите отворени работни книги или поврзани со одредена работна книга и да ги користите следните опции:

    • Run - го извршува избраното макро .
    • Чекор во - ви овозможува да го дебагирате и тестирате макрото во уредникот на Visual Basic.
    • Уреди - го отвора избраното макро воуредникот VBA, каде што можете да го прегледате и уредувате кодот.
    • Избриши - трајно го брише избраното макро.
    • Опции – овозможува менување на својствата на макрото како што се поврзаните Кратенка клучот и Описот .

    Како да се прикаже макроа во Excel

    Кодот на макрото на Excel може да се гледа и менува во уредникот на Visual Basic. За да го отворите Уредникот, притиснете Alt + F11 или кликнете на копчето Visual Basic на картичката Програмер .

    Ако видите уредникот VB за прв пат, немојте да се чувствувате обесхрабрени или заплашени. Нема да зборуваме за структурата или синтаксата на јазикот VBA. Овој дел само ќе ви даде основно разбирање за тоа како функционираат макроата на Excel и што всушност прави снимањето на макрото.

    Уредникот VBA има неколку прозорци, но ние ќе се фокусираме на двата главни:

    <0 0> Project Explorer- прикажува список на сите отворени работни книги и нивните листови. Дополнително, прикажува модули, кориснички форми и модули за класи.

    Прозорец на код - тука можете да гледате, уредувате и пишувате VBA код за секој објект прикажан во Project Explorer.

    Кога го снимивме примерокот макро, се случија следниве работи во задниот дел:

    • Беше нов модул ( Moduel1 ) вметната.
    • ВБА кодот на макрото е напишан во прозорецот Code.

    За да се види кодот на одреденомодул, кликнете двапати на модулот ( Module1 во нашиот случај) во прозорецот Project Explorer. Вообичаено, макро кодот ги има овие делови:

    Име на макро

    Во VBA, секое макро започнува со Sub проследено со името на макрото и завршува со End Sub , каде што „Sub“ е кратенка за Потпрограма (исто така наречена Постапка ). Нашиот примерок макро е именуван Header_Formatting() , така што кодот започнува со оваа линија:

    Sub Header_Formatting()

    Ако сакате да преименувате макрото , едноставно избришете го тековното име и внесете ново директно во прозорецот Код.

    Коментари

    Линиците со префикс со апостроф (') и стандардно прикажани со зелено не се извршуваат. Ова се коментари додадени за информативни цели. Линиите за коментари може безбедно да се отстранат без да се влијае на функционалноста на кодот.

    Обично, снименото макро има 1 - 3 линии за коментари: име на макро (задолжително); опис и кратенка (ако е наведено пред снимањето).

    Извршна шифра

    По коментарите, доаѓа кодот што ги извршува дејствата што сте ги снимиле. Понекогаш, снименото макро може да има многу излишен код, кој сепак може да биде корисен за да откриете како функционираат работите со VBA :)

    Сликата подолу покажува што прави секој дел од кодот на нашето макро:

    Како да извршите снимено макро

    Со извршување на макро, му кажувате на Excel да се врати на снимениот VBA код и да го извршиточно истите чекори. Постојат неколку начини да се изврши снимено макро во Excel, а еве ги најбрзите:

    • Ако сте доделиле кратенка на тастатура на макрото, притиснете ја таа кратенка .
    • Притиснете Alt + 8 или кликнете на копчето Макроа на картичката Програмер . Во полето за дијалог Macro , изберете го саканото макро и кликнете Изврши .

    Исто така е можно да се изврши снимено макро со кликнување на сопственото копче. Еве ги чекорите за да направите едно: Како да креирате макро копче во Excel.

    Како да зачувате макроа во Excel

    Без разлика дали сте снимиле макро или сте напишале VBA код рачно, за да го зачувате макрото , треба да ја зачувате работната книга како овозможена макро (продолжение .xlms). Еве како:

    1. Во работната книга што го содржи макрото, кликнете на копчето Зачувај или притиснете Ctrl + S .
    2. Во Зачувај како дијалог прозорецот, изберете Работна книга овозможена макро-Excel (*.xlsm) од паѓачката листа Зачувај како тип , а потоа кликнете Зачувај :

    Excel макроа: што е, а што не е снимено

    Како што штотуку видовте, многу е лесно да се снима макро во Excel. Но, за да создадете ефективни макроа, треба да разберете што се случува зад сцената.

    Што е снимено

    Макро рекордерот на Excel доловува доста работи - скоро сите кликнувања на глувчето и притискање на копчињата. Значи, треба внимателно да размислите за вашите чекори за да избегнете вишок код што можерезултира со неочекувано однесување на вашето макро. Подолу се дадени неколку примери за тоа што снима Excel:

    • Избор на ќелии со глувчето или тастатурата. Се запишува само последниот избор пред дејство. На пример, ако го изберете опсегот A1:A10, а потоа кликнете на ќелијата A11, ќе се снима само изборот на A11.
    • Форматирање на ќелиите како што се бојата на пополнување и фонтот, порамнување, граници итн.
    • Форматирање на броеви како процент, валута итн.
    • Уредување формули и вредности. Промените се запишуваат откако ќе притиснете Enter.
    • Скролување, преместување на прозорците на Excel, префрлување на други работни листови и работни книги.
    • Додавање, именување, преместување и бришење работни листови.
    • Создавање, отворање и зачувување работни книги.
    • Водење други макроа.

    Што не може да се сними

    И покрај многуте различни работи што Excel може да ги сними, одредени функции се надвор од можностите на макро рекордерот:

    • Приспособување на лентата на Excel и лентата со алатки за брз пристап.
    • Дејства во дијалозите на Excel како што се Условно форматирање или Најди и замени (се снима само резултатот).
    • Интеракции со други програми. На пример, не можете да снимате копирање/лепење од работна книга на Excel во документ на Word.
    • Се што вклучува VBA уредник. Ова ги наметнува најзначајните ограничувања - многу работи што можат да се направат на ниво на програмирање не можатда се сними:
      • Креирање сопствени функции
      • Прикажување приспособени дијалог-кутии
      • Правење циклуси како што се За следно , За секој , Прави додека итн.
      • Оценување на условите. Во VBA, можете да ја користите изјавата IF Then Else за да тестирате услов и да извршите некој код ако условот е точно или друг код ако условот е неточен.
      • Извршување код врз основа на настани . Со VBA, можете да користите многу настани за да извршите код поврзан со тој настан (како што е отворање работна книга, повторно пресметување на работен лист, менување на изборот и слично).
      • Користење аргументи. Кога пишувате макро во уредувачот VBA, можете да дадете влезни аргументи за макрото за извршување на одредена задача. Снименото макро не може да има никакви аргументи бидејќи е независно и не е поврзано со други макроа.
      • Разбирање на логиката. На пример, ако снимате макро што копира одредени ќелии, да речеме во редот Вкупно , Excel ќе ги снима само адресите на копираните ќелии. Со VBA, можете да ја кодирате логиката, т.е. да ги копирате вредностите во редот Вкупно .

    Иако горенаведените ограничувања поставуваат многу граници за снимените макроа, тие сè уште се добра почетна точка. Дури и ако немате идеја за јазикот VBA, можете брзо да снимате макро, а потоа да го анализирате неговиот код.

    Корисни совети за снимање макроа во Excel

    Подолу ќе најдете неколку совети и белешки кои можат потенцијално

    Мајкл Браун е посветен технолошки ентузијаст со страст за поедноставување на сложените процеси користејќи софтверски алатки. Со повеќе од една деценија искуство во технолошката индустрија, тој ги усоврши своите вештини во Microsoft Excel и Outlook, како и Google Sheets и Docs. Блогот на Мајкл е посветен на споделување на своето знаење и експертиза со другите, обезбедувајќи лесни за следење совети и упатства за подобрување на продуктивноста и ефикасноста. Без разлика дали сте искусен професионалец или почетник, блогот на Мајкл нуди вредни сознанија и практични совети за да го извлечете максимумот од овие основни софтверски алатки.