Excel VBA макро туторијал за почетници со примери

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

Содржина

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

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

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

    Што се макроата во Excel?

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

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

    Многу често, може да слушнете како луѓето се однесуваат на „макро“следете ги овие чекори:

    1. Отворете ја работната книга во која сакате да увезете макроа.
    2. Отворете го уредувачот на Visual Basic.
    3. Во Project Explorer, кликнете со десното копче името на проектот и изберете Увези датотека .
    4. Одете до датотеката .bas и кликнете Отвори .

    Примери за макро Excel

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

    Откријте ги сите листови во работната книга

    Во овој пример, го користиме ActiveWorkbook објект за враќање на тековно активната работна книга и јамката For Every да ги помине сите листови во работната книга еден по еден. За секој пронајден лист, го поставивме својството Visible на xlSheetVisible .

    Sub Unhide_All_Sheets() Dim wks as Worksheet For Every wks In ActiveWorkbook.Worksheets wks.Visible = xlSheetVisible Следни недели End Sub

    Сокриј го активниот работен лист или направете го многу скриен

    За да манипулирате со моментално активниот лист, користете го објектот ActiveSheet . Овој примерок макро го менува својството Visible на активниот лист во xlSheetHidden за да го скрие. Донаправете го листот многу скриен, поставете го својството Visible на xlSheetVeryHidden .

    Sub Hide_Active_Sheet() ActiveSheet.Visible = xlSheetHidden End Sub

    Отстранете ги сите споени ќелии во избраниот опсег

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

    Sub Unmerge_Cells() Selection.Cells.UnMerge End Sub

    Прикажи поле за порака

    За да се прикаже некоја порака до вашите корисници, користете ја функцијата MsgBox . Еве пример за такво макро во неговата наједноставна форма:

    Sub Show_Message() MsgBox ( „Здраво свето!“ ) End Sub

    Во реалните макроа, полето за пораки обично се користи за информации или цели за потврда. На пример, пред да извршите дејство (откачувајќи ги ќелиите во нашиот случај), прикажувате поле за пораки Да/Не . Ако корисникот кликне „Да“, избраните ќелии се отспојуваат.

    Под Unmerge_Selected_Cells() Затемнет одговор како стринг одговор = MsgBox( „Дали сте сигурни дека сакате да ги откачите овие ќелии?“, vbQuestion + vbYesNo, „Отстрани ги ќелиите“ ) Ако Answer = vbYes Потоа Selection.Cells.UnMerge End If End Sub

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

    Подолу се линковите до посложени макроа кои ги автоматизираат предизвикувачките и временскитезадачи што трошат:

    • Макро за копирање листови од повеќе работни книги во една
    • Макроа за дупликат листови во Excel
    • Макроа за азбука на картичките во Excel
    • Макро за да не заштити лист без лозинка
    • Макро за броење и сумирање условно обоени ќелии
    • Макро за претворање на броеви во зборови
    • Макро за сокривање на сите работни листови освен активниот лист
    • Макроа за откривање листови
    • Макро за прикажување на сите колони
    • Макро за да се направат листовите многу скриени
    • Макро за отстранување на сите прекини на линии во активен лист
    • Макро за бришење празни редови
    • Макро за бришење на секој друг ред
    • Макро за отстранување празни колони
    • Макро за вметнување секоја друга колона
    • Макроа во проверка на правопис во Excel
    • Макро за транспонирање колони во редови
    • Макро за превртување колони во Excel
    • Макроа за поставување област за печатење
    • Макроа за вметнување прекини на страницата

    Како да ги заштитите макроата на Excel

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

    Заклучете го макрото за гледање

    За да ги заштитите вашите VBA кодови од неовластено гледање и уредување, направете го следново:

    1. Отворете го VBA Уредувач.
    2. Во Project Explorer, кликнете со десното копче на проектот што сакате да го заклучите и изберете VBAProject Properties...
    3. Во Project Properties дијалог прозорец, на картичката Заштита , проверете го Заклучувањепроект за прегледување поле, внесете ја лозинката двапати и кликнете OK .
    4. Зачувајте, затворете и повторно отворете ја датотеката Excel.

    Кога ќе се обидете да го прегледате кодот во уредникот на Visual Basic, ќе се појави следниов дијалог прозорец. Внесете ја лозинката и кликнете OK.

    За отклучување макроа , само отворете го повторно полето за дијалог Project Properties и отстранете штиклирање од полето Заклучи проект за гледање .

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

    Заштитете го макрото со лозинка од извршување

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

    Sub Password_Protect() Затемнета лозинка Како варијанта лозинка = Application.InputBox( "Ве молиме внесете лозинка" , "Заштитена макро со лозинка" ) Изберете лозинка за случај Case Is = Неточно 'не прави ништо Case Is = "лозинка" 'вашиот код овде Случај Друго MsgBox „Неточна лозинка“ Крај Изберете крај под

    Макрото ја користи функцијата InputBox за да го поттикне корисникот да внесе лозинка:

    Ако внесувањето на корисникот се совпаѓа со хардкодираната лозинка, вашиот код е извршен. Ако лозинката не се совпаѓа, се прикажува полето за пораки „Неточна лозинка“. За да го спречите корисникот да ја гледа лозинката во уредувачот на Visual Basic, не заборавајте да ја заклучитемакро за гледање како што е објаснето погоре.

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

    Совети за макроа на Excel

    Професионалците на Excel VBA смислија тони генијални трикови за да ги направат нивните макроа поефикасни. Подолу ќе споделам неколку од моите омилени.

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

    Следните редови треба да се додадат на почетокот на вашиот код (по линиите што почнуваат со Dim или по Sub линија):

    Application.ScreenUpdating = False Application.Calculation = xlCalculationManual

    Следните редови треба да се додадат на крајот од вашиот код (пред End Sub ):

    Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic

    Како да се скрши VBA-кодот на повеќе линии

    Кога пишувате код во VBA уредникот, понекогаш може да креирате многу долги изјави, па мора да се движите хоризонтално за да го видите крајот на редот. Ова не влијае на извршувањето на кодот, но го отежнува испитувањето на кодот.

    За да поделите долга изјава во неколку редови, напишете празнина проследено со подвлекување (_) во точката во која сакате да ја прекинете линијата. Во VBA, ова се нарекува знак за продолжување на линијата .

    За правилно да го продолжите кодот на следната линија, следете ги овие правила:

    • Не поделете го кодот во средината на имињата на аргументите.
    • Не користете долна црта за да ги прекинете коментарите. За коментари со повеќе линии, напишете апостроф (') на почетокот на секој ред.
    • Долна црта мора да биде последниот знак на линијата, а не проследена со ништо друго.

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

    Answer = MsgBox( "Дали сте сигурни дека сакате да ги отспоите овие ќелии?" , _ vbQuestion + vbYesNo, "Unmerge Cells" )

    Како да направи макро достапно од која било работна книга

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

    Единствената пречка е што Работната книга за лична макро стандардно не постои во Excel. За да го креирате, ќе треба да снимите барем едно макро. Следното упатство ги дава сите детали: Лична макро работна книга во Excel

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

    По извршувањето на макрото, неговото дејство не може да се врати со притискање на Ctrl + Z ниту со кликнување наКопче Врати .

    Искусни VBA програмери, се разбира, можат да ги потврдат влезните вредности и/или почетните услови пред да дозволат макрото да прави какви било промени на работниот лист, но во повеќето случаи тоа е доста комплицирано.

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

    ActiveWorkbook.Зачувај

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

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

    Спречете го Excel да прикажува безбедносно предупредување кога нема макроа во работна книга

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

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

    • За This Workbook и за секој поединечен лист, отворете го прозорецот Code, притиснете Ctrl + A за да го изберете целиот код и да го избришете (дури и ако изгледа прозорецот Кодпразен).
    • Избришете ги сите UserForms и Class модули што ги содржи работната книга.

    Така креирате и користите VBA макроа во Excel. Ви благодарам што прочитавте и се надевам дека ќе се видиме повторно на нашиот блог следната недела!

    како „VBA“. Технички, постои разлика: макрото е парче код додека Visual Basic for Applications (VBA) е програмскиот јазик создаден од Microsoft за пишување макроа.

    Зошто да користите макроа на Excel?

    Главната цел на макроата е да се направи повеќе работа за помалку време. Како што користите формули за крцкање броеви и манипулирање со текстуални низи, можете да користите макроа за автоматски да извршувате чести задачи.

    Да речеме, треба да креирате неделен извештај за вашиот претпоставен. За ова, внесувате различни аналитички податоци од неколку или повеќе надворешни ресурси. Проблемот е што тие податоци се неуредни, излишни или не се во формат што Excel може да го разбере. Тоа значи дека треба да ги реформатирате датумите и броевите, да скратите дополнителни празни места и да ги избришете празнините, да копирате и залепите информации во соодветни колони, да изградите графикони за да ги визуелизирате трендовите и да направите многу повеќе различни работи за да го направите вашиот извештај јасен и лесен за користење. Сега, гледајте дека сите овие операции може да се извршат за вас веднаш со кликнување на глувчето!

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

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

    Постојат два начина за креирањемакроа во Excel - со користење на Macro Recorder и Visual Basic Editor.

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

    Снимање макро

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

    Макро рекордерот снима речиси сè што правите и произведува многу детален (често непотребен) код. Откако ќе го прекинете снимањето и ќе го зачувате макрото, можете да го видите неговиот код во уредувачот на Visual Basic и да направите мали промени. Кога ќе го стартувате макрото, Excel се враќа на снимениот VBA-код и ги извршува истите потези.

    За да започнете со снимање, кликнете на копчето Снимање макро на било кој од Програмер табот или лентата Статус .

    За детални информации, погледнете Како да снимате макро во Excel.

    Пишување макро во Visual Basic Editor

    Уредникот на Visual Basic за апликации (VBA) е местото каде што Microsoft Excel го чува кодот на сите макроа, и снимени и напишани рачно.

    Во уредникот VBA , не само што можете да програмирате низа дејства, туку и да креирате прилагоденофункции, прикажете ги вашите сопствени дијалог-кутија, проценете различни услови и што е најважно кодирајте ја логиката! Секако, создавањето на сопствено макро бара одредено познавање на структурата и синтаксата на јазикот VBA, што е надвор од опсегот на овој туторијал за почетници. Но, нема ништо што би ве спречило повторно да употребите туѓ код (да речеме, оној што го најдовте на нашиот блог :), па дури и комплетен почетник во Excel VBA не би требало да има потешкотии со тоа!

    Прво, притиснете Alt + F11 за да го отворите уредникот на Visual Basic. А потоа, вметнете го кодот во овие два брзи чекори:

    1. Во Project Explorer лево, кликнете со десното копче на целната работна книга, а потоа кликнете Вметни > Модул .
    2. Во прозорецот Code на десната страна, залепете го VBA-кодот.

    Кога ќе завршите, притиснете F5 за да го извршите макрото.

    За деталните чекори, погледнете Како да вметнете VBA код во Excel.

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

    Постојат неколку начини за стартување макро во Excel:

    • За да извршите макро од работен лист, кликнете на копчето Макроа на картичката Програмер или притиснете ја кратенката Alt + F8.
    • За да извршите макро од уредувачот VBA, притиснете едно од:
      • F5 за да го извршите целиот код.
      • F8 за да поминете низ кодот ред по ред. Ова е многу корисно за тестирање и решавање проблеми.

    Покрај тоа, можете да стартувате макро со кликнување на приспособено копче илипритискање на доделената кратенка. За целосни детали, погледнете Како да стартувате макроа во Excel.

    Како да овозможите макроа во Excel

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

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

    За да дознаете повеќе за безбедноста на макро, погледнете Како за да овозможите и оневозможите макроа во Excel.

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

    Microsoft Excel одредува дали да дозволи или да не дозволи VBA кодовите да се извршуваат во вашите работни книги врз основа на поставката за макро избрана во Центар за доверба .

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

    1. Одете во картичката Датотека и изберете Опции .
    2. На левата страна, изберете Центар за доверба , а потоа кликнете Поставки на Центарот за доверба... .
    3. Во полето за дијалог Центар за доверба , кликнете Поставки за макро лево, изберете ја саканата опција и кликнете OK > 3>

      Како да прегледате, уредувате и дебагирате VBAкодови во Excel

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

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

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

      За тестирање и отстранување грешки макро, користете го копчето F8. Ова ќе ве однесе низ макро-кодот линија по линија што ќе ви овозможи да го видите ефектот што секоја линија го има на вашиот работен лист. Линијата што моментално се извршува е означена со жолто. За да излезете од режимот за отстранување грешки, кликнете на копчето Ресетирање на лентата со алатки (син квадрат).

      Како да копирате макро во друга работна книга

      Создадовте макро во една работна книга и сега сакате повторно да го користите и во други датотеки? Постојат два начини да се копира макро во Excel:

      Копирај го модулот што содржи макро

      Доколку целното макро се наоѓа во посебен модул или сите макроа во модулот се корисни за вас , тогаш има смисла да го копирате целиот модул од една работна книга во друга:

      1. Отворете ги двете работни книги - онаа што го содржи макрото и онаа каде што сакате да ја копирате.
      2. Отвориуредникот на Visual Basic.
      3. Во окното Project Explorer, пронајдете го модулот што го содржи макрото и повлечете го до одредишната работна книга.

      На сликата од екранот подолу, ние копираме Модул 1 од Книга1 до Книга2 :

      Копирај го изворниот код на макро

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

      1. Отворете ги двете работни книги.
      2. Отворете го уредувачот на Visual Basic.
      3. Во окното Project Explorer, кликнете двапати на модулот што го содржи макрото што го би сакал да копира за да го отвори прозорецот со код.
      4. Во прозорецот Code, пронајдете го целното макро, изберете го неговиот код (почнувајќи со Sub и завршувајќи со End Sub ) и притиснете Ctrl + C за да ја копирате.
      5. Во Project Explorer, пронајдете ја дестинациската работна книга, а потоа или вметнете нов модул во неа (десен-клик на работната книга и кликнете Вметни > Модул ) или кликнете двапати на постоечки модул за да го отворите неговиот прозорец со код.
      6. Во прозорецот Код на одредишниот модул, притиснете Ctrl + V за да го залепите кодот. Ако модулот веќе содржи одреден код, скролувајте надолу до последната линија на код, а потоа залепете го копираното макро.

    Како да избришете макроа во Excel

    Ако повеќе не ви треба одреден VBA код, можете да го избришете со користење на полето за дијалог Macro или уредникот на Visual Basic.

    Бришење намакро од работна книга

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

    1. На картичката Програмер , во Код , кликнете на копчето Макроа или притиснете ја кратенката Alt + F8.
    2. Во полето за дијалог Макро , изберете го макрото што сакате да го отстраните и кликнете Избриши .

    Совети:

    • За да ги видите сите макроа во сите отворени датотеки, изберете Сите отворени работни книги од паѓачката листа Макроа во .
    • За да можете да избришете макро во Личната макро работна книга, прво треба да го отстраните Personal.xlsb.

    Бришење макро преку Visual Basic Editor

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

    За трајно бришење модул , извршете ги овие чекори:

    1. Во Project Explorer , кликнете со десното копче на модулот и изберете Отстрани од контекстното мени.
    2. Кога ќе ве прашаат дали сакате да го извезете модулот пред да го отстраните, кликнете Не .

    За да отстраните одредено макро , едноставно избришете го неговиот изворен код директно во прозорецот Код. Или, можете да избришете макро со користење на менито Tools на VBA Editor:

    1. Од менито Tools , изберете Macros . НаЌе се појави дијалог прозорецот Макроа .
    2. Во паѓачката листа Макроа Во , изберете го проектот што го содржи несаканото макро.
    3. Во полето Име на макро , изберете го макрото.
    4. Кликнете на копчето Избриши .

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

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

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

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

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

    Извезување макроа

    За да ги извезете вашите VBA кодови, ова е она што треба да го направите:

    1. Отворете ја работната книга што содржи макроа.
    2. Притиснете Alt + F11 за да го отворите уредувачот на Visual Basic.
    3. Во Project Explorer, кликнете со десното копче на Модулот што ги содржи макроата и изберете Извези датотека .
    4. Одете до папката каде што сакате да ја зачувате извезената датотека, именувајте ја датотеката и кликнете Зачувај .

    Увезување макроа

    За да увезете датотека .bas со VBA кодови во вашиот Excel, ве молиме

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