Zaujímavé hotové makrá vba excel. Príklady makier programu Excel

  • 16.07.2019

Objekty, ako sú makrá v Exceli, pomôžu kompetentne organizovať proces práce v Exceli.

Pozrime sa podrobnejšie na všetky funkcie práce s týmito objektmi v softvérovom balíku MS Office.

Pomocou makier je možné automatizovať každú bunku v dokumente. Je to spôsobené tým, že používateľ zaznamenáva všetky akcie v čase ich vytvorenia.

Čo sú makrá a prečo sú potrebné

S makrami môžete pracovať v ktoromkoľvek z programov balíka MS Office. V prvom rade sú potrebné na kompetentnú organizáciu práce používateľa v programe.

Sú potrebné na to, aby sa rovnaký typ úloh a akcií nevykonával niekoľkokrát.

Ich tvorba a používanie pomôže výrazne ušetriť čas a maximálne zautomatizovať prácu v programe.

Dôležité! Vďaka vytvorenému makru jednoducho urobíte prácu okamžite, pričom manuálne by vám zabralo veľa času.

Jeho telo v skutočnosti pozostáva z inštrukcií, ktoré hovoria programu, čo má robiť, ak používatelia vyberú jedno alebo druhé.

S konceptom makra sa môžeme stretnúť aj v programe Word, no v Exceli má niekoľko výhod:

  • Po prvé, kombinuje všetky inštrukcie do jedného kompletného vykonávacieho skriptu, ktorý vám umožní optimalizovať zaťaženie programu a začať pracovať rýchlejšie;
  • Môžete ho vyvolať pomocou klávesu na paneli nástrojov alebo pomocou špeciálnej kombinácie klávesov. To umožní používateľovi, aby sa počas práce neodtrhol od klávesnice;

Zaznamenávame ďalšie dva články, ktoré môžubudete potrebovať:

Vytváranie vlastných makier v Exceli 2010, 2007, 2013

Pozrime sa podrobnejšie na príklady vytvárania v Exceli 2007, 2013:

  • Otvorte dokument, s ktorým pracujete a pre ktorý chcete vytvoriť makro. Mimochodom, každá bunka, na ktorej sa vykonáva akcia, musí byť vypracovaná;
  • Zobrazte kartu vývojára na páse s nástrojmi. Ak to chcete urobiť, otvorte položku ponuky "Súbor" a otvorte možnosti, ako je znázornené na obrázku;

  • Potom vyberte prispôsobenie pásky a pridajte okno vývojára do zoznamu hlavných okien, ako je znázornené na obrázku nižšie;

  • Teraz môžete prejsť priamo k vytvoreniu samotného používateľského makra.
    Po vytvorení sa každá bunka zautomatizuje – to znamená, že ktorákoľvek bunka v dokumente používateľa vykoná rovnaký typ akcie, aký používateľ určí;
  • Nájdite na karte vývojára špeciálny kľúč na vytvorenie. Jeho umiestnenie je znázornené na obrázku nižšie;

  • Kliknite na kľúč. Zobrazí sa okno na vytvorenie, v ktorom musíte zadať názov, klávesovú skratku, pomocou ktorej sa zapne. Môžete pridať aj krátky popis fungovania makra.
    Toto sa musí urobiť, ak ich máte príliš veľa, aby ste sa nezamieňali;

  • Potom kliknite na tlačidlo OK. Okno sa zatvorí a spustí sa proces nahrávania. Ak chcete zastaviť nahrávanie, stlačte príslušné tlačidlo na ovládacom paneli;

  • Teraz začnite vykonávať akcie, ktoré budú zaznamenané v makre. Každá bunka môže byť naplnená určitými údajmi.
    Môžete tiež pracovať len s jednou bunkou, po zaznamenaní a povolení makra sa tá istá bunka zaznamená podľa zadaného algoritmu;
  • Nezabudnite stlačiť tlačidlo zastavenia nahrávania údajov. Po dokončení všetkých vyššie uvedených krokov sa zaznamená a uloží do programu.

Ako povoliť a pracovať s makrami v Exceli

Ak to chcete urobiť, postupujte podľa pokynov nižšie:

  • Na karte vývojára vyhľadajte tlačidlo s názvom „Makrá“. Kliknite naň;

  • Vyberte požadované makro zo zoznamu a kliknite na tlačidlo "Spustiť";

  • Potrebné makro môžete spustiť aj pomocou klávesovej skratky, ktorú používateľ zadal v počiatočnej fáze jeho vytvárania;
  • Po kliknutí na tlačidlo spustiť sa znova vykonajú všetky akcie, ktoré boli vykonané počas nahrávania.

Makro sa najlepšie používa, keď je potrebné konkrétnu bunku skopírovať viackrát.

Excel má výkonnú, no zároveň veľmi málo používanú schopnosť vytvárať automatické sekvencie akcií pomocou makier. Makro je ideálnym východiskom, ak riešite rovnaký typ úlohy, ktorý sa mnohokrát opakuje. Napríklad spracovanie dát alebo formátovanie dokumentu podľa štandardizovanej šablóny. V tomto prípade nepotrebujete znalosť programovacích jazykov.

Už ste zvedaví, čo je makro a ako funguje? Potom smelo do toho - potom s vami krok za krokom urobíme celý proces vytvárania makra.

Čo je makro?

Makro v balíku Microsoft Office (áno, táto funkcia funguje rovnako v mnohých aplikáciách balíka Microsoft Office) je kód programovacieho jazyka (VBA) uložený v dokumente. Aby to bolo jasnejšie, dokument Microsoft Office možno prirovnať k HTML stránke, potom je makro analogické s Javascriptom. Čo dokáže Javascript s údajmi HTML na webovej stránke, je veľmi podobné tomu, čo dokáže urobiť makro s údajmi v dokumente balíka Microsoft Office.

Makrá môžu v dokumente robiť takmer všetko, čo chcete. Tu sú niektoré z nich (veľmi malá časť):

  • Použiť štýly a formátovanie.
  • Vykonávajte rôzne operácie s číselnými a textovými údajmi.
  • Používajte externé zdroje údajov (databázové súbory, textové dokumenty atď.)
  • Vytvorte nový dokument.
  • Urobte všetko vyššie uvedené v akejkoľvek kombinácii.

Vytvorenie makra - praktický príklad

Zoberme si napríklad najbežnejší súbor csv. Ide o jednoduchú tabuľku s rozmermi 10 x 20 naplnenú číslami od 0 do 100 s nadpismi stĺpcov a riadkov. Našou úlohou je premeniť tento súbor údajov na prezentovateľne naformátovanú tabuľku a vygenerovať súčty v každom riadku.

Ako už bolo spomenuté, makro je kód napísaný v programovacom jazyku VBA. Ale v Exceli môžete vytvoriť program bez písania riadku kódu, čo urobíme práve teraz.

Ak chcete vytvoriť makro, otvorte vyhliadka(Zobraziť) > Makrá(Makrá) > Záznam makra(Makro nahrávanie...)

Pomenujte svoje makro (bez medzier) a kliknite OK.

Od tohto momentu sa zaznamenávajú VŠETKY vaše akcie s dokumentom: zmeny buniek, rolovanie v tabuľke, dokonca aj zmena veľkosti okna.

Excel signalizuje, že režim záznamu makra je povolený na dvoch miestach. Najprv v ponuke Makrá(Makrá) - namiesto reťazca Záznam makra Objavil sa riadok (Nahrávanie makra...). Zastaviť nahrávanie(Zastaviť nahrávanie).

Po druhé, v ľavom dolnom rohu okna programu Excel. Ikona Stop(malý štvorec) znamená, že záznam makra je povolený. Kliknutím naň zastavíte nahrávanie. Naopak, keď režim nahrávania nie je povolený, na tomto mieste je ikona umožňujúca nahrávanie makra. Kliknutím naň získate rovnaký výsledok ako zapnutie nahrávania cez menu.

Teraz, keď je zapnutý režim záznamu makra, poďme k našej úlohe. V prvom rade pridajme hlavičky pre súhrnné údaje.

  • =SUM(B2:K2) alebo =SUM(B2:K2)
  • =AVERAGE(B2:K2) alebo =AVERAGE(B2:K2)
  • =MIN(B2:K2) alebo =MIN(B2:K2)
  • =MAX(B2:K2) alebo =MAX(B2:K2)
  • =MEDIAN(B2:K2) alebo =MEDIAN(B2:K2)

Teraz vyberte bunky so vzorcami a skopírujte ich do všetkých riadkov našej tabuľky potiahnutím rukoväte automatického dopĺňania.

Po dokončení tohto kroku by mal mať každý riadok zodpovedajúce súčty.

Respektíve:

  • =SUM(L2:L21) alebo =SUM(L2:L21)
  • =AVERAGE(B2:K21) alebo =AVERAGE(B2:K21)- na výpočet tejto hodnoty je potrebné vziať presne počiatočné údaje tabuľky. Ak vezmete priemer priemerov pre jednotlivé riadky, výsledok bude iný.
  • =MIN(N2:N21) alebo =MIN(N2:N21)
  • =MAX(O2:O21) alebo =MAX(O2:O21)
  • =MEDIAN(B2:K21) alebo =MEDIAN(B2:K21)- z vyššie uvedeného dôvodu uvažujeme o použití počiatočných údajov tabuľky.

Teraz, keď sme skončili s výpočtami, urobme nejaké formátovanie. Najprv nastavme rovnaký formát zobrazenia údajov pre všetky bunky. Vyberte všetky bunky na hárku, použite na to klávesovú skratku Ctrl+A alebo kliknite na ikonu Vybrať všetko, ktorý sa nachádza na priesečníku nadpisov riadkov a stĺpcov. Potom kliknite Štýl čiarky(Formát s oddeľovačmi). Domov(Domov).

  • Tučný štýl písma.
  • Zarovnanie na stred.
  • Farebná výplň.

A nakoniec nastavíme formát súčtov.

Takto by to malo vyzerať na konci:

Ak vám všetko vyhovuje, zastavte nahrávanie makra.

Gratulujem! Práve ste sami zaznamenali svoje prvé makro v Exceli.

Ak chcete použiť vygenerované makro, musíme uložiť dokument programu Excel vo formáte, ktorý podporuje makrá. Najprv musíme z nami vytvorenej tabuľky vymazať všetky údaje, t.j. urobte z neho prázdnu šablónu. Faktom je, že v budúcnosti pri práci s touto šablónou do nej budeme importovať najnovšie a relevantné údaje.

Ak chcete vymazať všetky bunky z údajov, kliknite pravým tlačidlom myši na ikonu Vybrať všetko, ktorý sa nachádza na priesečníku nadpisov riadkov a stĺpcov a z kontextového menu vyberte Odstrániť(Vymazať).

Teraz je náš hárok úplne vyčistený od všetkých údajov, zatiaľ čo makro zostáva zaznamenané. Musíme uložiť zošit ako šablónu programu Excel s podporou makier, ktorá má príponu XLTM.

Dôležitý bod! Ak uložíte súbor s príponou XLTX, potom v ňom makro nebude fungovať. Mimochodom, zošit môžete uložiť ako šablónu Excel 97-2003, ktorá má formát XLT, podporuje aj makrá.

Po uložení šablóny môžete Excel bezpečne zavrieť.

Spustenie makra v Exceli

Pred odhalením všetkých možností makra, ktoré ste vytvorili, si myslím, že je správne venovať pozornosť niekoľkým dôležitým bodom týkajúcim sa makier vo všeobecnosti:

  • Makrá môžu byť škodlivé.
  • Prečítajte si ešte raz predchádzajúci odsek.

Kód VBA je veľmi výkonný. Najmä môže vykonávať operácie so súbormi mimo aktuálneho dokumentu. Makro môže napríklad odstrániť alebo upraviť ľubovoľné súbory v priečinku Moje dokumenty. Z tohto dôvodu spúšťajte a povoľujte makrá iba zo zdrojov, ktorým dôverujete.

Ak chcete spustiť naše makro na formátovanie údajov, otvorte súbor šablóny, ktorý sme vytvorili v prvej časti tohto návodu. Ak máte štandardné nastavenia zabezpečenia, pri otvorení súboru sa nad tabuľkou zobrazí upozornenie, že makrá sú zakázané, a tlačidlo na ich povolenie. Keďže sme si šablónu vyrobili sami a veríme si, stlačíme tlačidlo Povoliť obsah(Zahrňte obsah).

Ďalším krokom je import najnovšieho aktualizovaného súboru údajov zo súboru csv(na základe takéhoto súboru sme vytvorili naše makro).

Keď importujete údaje zo súboru CSV, Excel vás môže požiadať o nastavenie niektorých nastavení, aby sa údaje správne preniesli do tabuľky.

Po dokončení importu prejdite do ponuky Makrá(Makrá). vyhliadka(Zobraziť) a vyberte príkaz Zobraziť makrá(Makrá).

V dialógovom okne, ktoré sa otvorí, uvidíme riadok s názvom nášho makra FormatData. Vyberte ho a kliknite Bežať(Vykonať).

Keď sa makro spustí, uvidíte, že kurzor tabuľky skáče z bunky na bunku. Po niekoľkých sekundách sa s údajmi vykonajú rovnaké operácie ako pri nahrávaní makra. Keď je všetko pripravené, tabuľka by mala vyzerať rovnako ako originál, ktorý sme naformátovali ručne, len s inými údajmi v bunkách.

Pozrime sa pod kapotu: Ako funguje makro?

Ako už bolo spomenuté viac ako raz, makro je programový kód v programovacom jazyku. Visual Basic for Applications(VBA). Keď zapnete režim záznamu makier, Excel skutočne zaznamená každú vykonanú akciu vo forme inštrukcií VBA. Jednoducho povedané, Excel napíše kód za vás.

Ak chcete vidieť tento kód programu, musíte v ponuke Makrá(Makrá). vyhliadka(zobraziť) kliknúť Zobraziť makrá(Makrá) a v dialógovom okne, ktoré sa otvorí, kliknite Upraviť(Zmena).

Otvorí sa okno Visual Basic for Applications, v ktorom uvidíme programový kód makra, ktoré sme zaznamenali. Áno, pochopili ste správne, tu môžete tento kód zmeniť a dokonca vytvoriť nové makro. Akcie, ktoré sme vykonali s tabuľkou v tejto lekcii, je možné zaznamenať pomocou automatického záznamu makier v Exceli. Ale zložitejšie makrá s jemne vyladenou sekvenciou a akčnou logikou vyžadujú manuálne programovanie.

Pridajme k našej úlohe ešte jeden krok...

Predstavte si, že náš pôvodný dátový súbor data.csv sa vytvára automaticky nejakým procesom a je vždy uložený na disku na rovnakom mieste. Napríklad, C:\Data\data.csv– cesta k súboru s aktualizovanými údajmi. Proces otvárania tohto súboru a importu údajov z neho možno zaznamenať aj v makre:

  1. Otvorte súbor šablóny, do ktorého sme uložili makro − FormatData.
  2. Vytvorte nové makro s názvom načítať dáta.
  3. Počas nahrávania makra načítať dáta importovať údaje zo súboru data.csv- ako sme to urobili v predchádzajúcej časti lekcie.
  4. Po dokončení importu zastavte zaznamenávanie makra.
  5. Odstráňte všetky údaje z buniek.
  6. Uložte súbor ako šablónu Excel s podporou makier (rozšírenie XLTM).

Spustením tejto šablóny teda získate prístup k dvom makrám – jedno načíta dáta, druhé ich formátuje.

Ak sa chcete pustiť do programovania, môžete spojiť akcie týchto dvoch makier do jedného – jednoducho skopírovaním kódu z načítať dáta na začiatok kódu FormatData.

Začal som vytvárať túto stránku ako poznámkový blok o pohodlných funkciách Excelu. Kedykoľvek si môžete obnoviť svoje znalosti o konkrétnej funkcii programu tak, že prejdete na stránku a navyše môžete poslať odkaz na článok priateľom alebo kolegom, ktorí požiadajú o pomoc s Excelom. Návštevnosť stránky sa pomerne rýchlo rozrástla a ako vidím, zaznamenané informácie sú užitočné nielen pre mňa a pár ďalších ľudí, ale aj pre mnohých ľudí, ktorých nepoznám a sú vysoko hodnotené vyhľadávačmi. Ak som si istý schopnosťami Excelu, nemôžem sa nazývať odborníkom na VBA na vysokej úrovni. Preto by som rád vytvoril veľký pomocný článok, kde si budem zapisovať užitočné makrá, ktoré často používam. Som si istý, že takáto zbierka funkcií VBA bude užitočná nielen pre mňa.

Táto stránka už obsahuje niekoľko článkov o VBA, vrátane , ale myslím si, že by bolo užitočné ponechať na jednom mieste množstvo kódu, ktorý sa často používa.

Vypnite zobrazovanie makro akcií na obrazovke jednoduchou funkciou. Tým sa nielen vizuálne zlepší vykonávanie, ale aj to, že makro bude bežať oveľa rýchlejšie.

Sub Makros1() Application.ScreenUpdating = 0 "Váš kód Application.ScreenUpdating = 1 End Sub

Nezabudnite uviesť funkciu na koniec makra

Ako odstrániť výber kópie po vykonaní makra?

Ak pridelíte rozsah na kopírovanie a vkladanie do makra. Nezabudnite zakázať výber na konci makra.

Sub Makros1() "Váš kód Application.CutCopyMode = 0 End Sub

Užitočné makrá. Ako nájsť posledný riadok alebo stĺpec rozsahu

Táto konštrukcia vám pomôže ľahko nájsť číslo posledného riadku alebo stĺpca vyplneného rozsahu. Je obzvlášť vhodné použiť v cykloch, nemusíte nastavovať 1000 riadkov cyklu s okrajom, Excel sám nájde, kde je koniec rozsahu pomocou tejto konštrukcie:

Sub makros1() Dim mLastRow As Long Dim nLastCol As Long mLastRow = Cells(Rows.Count, 1).End(xlUp).Row "Nájde číslo posledného riadku vyplneného rozsahu nLastCol= Cells(1, Columns.Count ).End(xlToLeft ).Column "Nájde posledné vyplnené číslo stĺpca rozsahu End Sub

Navyše premennú hneď deklarujem ako Long (dĺžka 2 147 483 647), aby som sa nedostal do situácie, keď obľúbené Integer nemusí stačiť (32 767) na veľké tabuľky.

Mali by ste tiež venovať pozornosť tomu, že vyhľadávanie prebieha v prvom stĺpci alebo prvom riadku, vyberte požadované číslo pre správnu definíciu.

Pre slučku a kontrolu stavu v slučke

Ak ste našli posledné čísla riadkov a stĺpcov rozsahov, môžete ich použiť v slučkách. Napríklad musíte prejsť cez prvý stĺpec a spočítať počet prázdnych buniek.

Sub makros1() Application.ScreenUpdating = 0 Dim mLastRow As Long Dim Kol As Long "Count Premenná Dim i As Long "Slučková premenná mLastRow = Cells(Rows.Count, 1).End(xlUp).Row Kol = 0 For i = 1 To mLastRow If Cells(i, 1).Value = "" Then Kol = Kol + 1 End If Next i MsgBox Kol Application.ScreenUpdating = 1 End Sub

Používa sa tu aj Msgbox, s touto funkciou môžete zobraziť údaje v samostatnom okne. Pre môj príklad by to vyzeralo takto:

Počítanie času vykonania makra

Sub makros1() TimeStart = Now TimeFinish = Now MsgBox "Time: " & Format(TimeFinish - TimeStart, "h:mm:ss") End Sub

MsgBox poskytuje nasledujúci výstup:

Je veľmi vhodné sledovať čas vykonávania makier pre následnú optimalizáciu.

Sú to užitočné makrá, ktoré používam veľmi často. Tento zoznam budem postupne rozširovať. Všetka efektívna automatizácia!

Zdieľajte náš článok na svojich sociálnych sieťach:

Makro na zvýraznenie na každom hárku v aktívnom zošite bunky A1. Tiež posúva obrazovku.

Sub A1SelectionEachSheet() Dim i As Integer Application.ScreenUpdating = False For i = 1 To Sheets.Count Sheets(i).Select ActiveWindow.ScrollColumn = 1 ActiveWindow.ScrollRow = 1 Range("a1").Vyberte Next Sheets(1) .Vyberte Application.ScreenUpdating = True End Sub

Makro, ak chcete skopírovať aktuálny hárok určený počet krát. Užitočné na testovanie niektorých druhov makier - urobili zmeny, skontrolovali ich na kópii údajov. Došli kópie – spustite makro znova

Sub SimpleCopy() Dim i As Integer, j As Integer i = Application.InputBox("Zadajte počet kópií aktuálneho hárka") Application.ScreenUpdating = False For j = 1 To i ActiveSheet.Copy after:=Sheets(Sheets) .Count) ActiveSheet .Name = "Kopírovať" & j Ďalej j Application.ScreenUpdating = True End Sub

Vytvorte hárky s názvami zo zadaného rozsahu na hárku

Sub CreateFromList() Dim cell as range for each cell in Selection Sheets.Add after:=Sheets(Sheets.Count) ActiveSheet.Name = cell.Value Ďalšia bunka End Sub

Markros odosiela e-maily s oneskorením. Upravené makro z knihy Johna Walkenbacha Professional VBA Programming

Sub SendMail() Dim OutApp as Object Dim OutApp As Object Dim OutMail as Object Set OutApp = CreateObject("Outlook.Application") OutApp.Session.Logon On Error GoTo cleanup Set OutMail = OutApp.CreateItem(0) On Error Pokračovať ďalej s OutMail .To = " [e-mail chránený]" .Subject = "Prehľad predaja" .Prílohy.Pridať "C:\Test.txt" .Body = "Telo správy" .DeferredDeliveryTime = Replace(Date, ".", "/") & " 11:00:00 " .send ".Display to form mail and open it End With On Error GoTo 0 Set OutMail = Nothing cleanup: Set OutApp = Nothing End Sub

Mierne upravené makro obsahu od Nikolaja Pavlova.
Ak kniha už obsahuje hárok s obsahom, makro navrhne jeho odstránenie. Ak nie, vytvorí sa hárok „Obsah“ a vloží sa prepojenia s názvami hárkov

Sub TableOfContent() Stmaviť hárok Ako pracovný hárok Stmaviť bunku Ako rozsah Stmaviť Odpoveď ako celé číslo Application.ScreenUpdating = False S aktívnym zošitom pre každý pracovný hárok v ActiveWorkbook.Worksheets If Worksheet.Name = "Obsah" Potom odpoveď = MsgBox("Existuje hárok v zošite s názvom Obsah. Odstrániť?", vbYesNo) Ak Odpoveď = vbNo Potom Exit Sub If Answer = vbYes Then Application.DisplayAlerts = False Worksheet.Delete Application.DisplayAlerts = True End If End If Next End With Sheets(Array (1)).Vyberte Sheets.Add Sheets(1).Name = "Obsah" s aktívnym zošitom pre každý hárok v aktívnom zošite.pracovné hárky Ak hárok.Názov<>"Obsah" Potom nastavte bunku = Pracovné hárky(1).Cells(hárok.Index, 1) .Pracovné hárky(1).Hypertextové odkazy.Pridať kotvu:=bunka, Adresa:="", Podadresa:=""" & hárok .Name & """ & "!A1" cell.Formula = sheet.Name End If Ďalší list End With Rows("1:1").Delete Application.ScreenUpdating = True End Sub

Triedenie listov od sprievodcov VBA. Makro triedi aj skryté listy. Nebude fungovať, ak má kniha ochranu štruktúry

Sub SORT_ALL_SHEETS() Application.ScreenUpdating = False: Application.EnableEvents = False Dim iSht As Worksheet, oDict As Object, i%, j% Set oDict = CreateObject("Scripting.Dictionary") " si zapamätajte stav viditeľnosti každého listu a urobte všetko viditeľné Pre každý iSht v ActiveWorkbook.Sheets oDict.Item(iSht.Name) = iSht.Visible: iSht.Visible = Pravda Ďalej S ActiveWorkbook " zoradiť viditeľné listy Pre i = 1 Do .Sheets.Count - 1 Pre j = i + 1 To .Sheets.Count If UCase(.Sheets(i).Name) > UCase(.Sheets(j).Name) Potom .Sheets(j).Presunúť pred:=.Sheets(i) Ďalej j Ďalej i Koniec s " obnoviť počiatočný stav viditeľnosti každého hárka Pre každý iSht v ActiveWorkbook.Sheets iSht.Visible = oDict.Item(iSht.Name) Ďalej Application.EnableEvents = True: Application.ScreenUpdating = True End Sub

Importujte stĺpce "Pole1" a "Pole2" z listu "Hárok1" súboru Excel "C:\Manager.xls" cez pripojenie ADODB a vložte obsah začínajúci od bunky A1 aktuálneho listu

Ak nie ste silný v programovaní, ale zároveň potrebujete nejaké implementovaťúloha, ktorá presahuje štandardné funkcie a príkazy MS Excel, môžete hľadať riešenie na internete. Riešenie je s najväčšou pravdepodobnosťou vo forme kódu VBA, ktorý musíte skopírovať a vložiť do svojho zošita, potom nejakým spôsobom zabezpečiť, aby vám tento kód fungoval, v tomto článku vám poviem, ako na to.

Zvážte dva príklady:

1. Hľadanie a využívanie tímu

Potrebujeme napríklad príkaz, ktorý by do vybratých buniek vložil číslo „1“. Spustíme vyhľadávací nástroj, zadáme hľadaný výraz, získame výsledky, začneme prehliadať, nájdeme kód v niečom takomto:

Sub Insert1() Dim q As Object On Error Pokračovať v ďalšej množine q = Bunky pre každé q Vo výbere q = 1 Ďalej q End Sub

Vyberte tento kód (bez číslovania riadkov, počnúc slovom Sub) a stlačte ctrl+c. Prejdite do zošita MS Excel a stlačte klávesovú skratku Alt+F11, budete mať otvorené okno editora VBA:

V ľavom okne "Projekt - Projekt VBA" vyberte (kliknite) náš zošit, do ktorého chcete vložiť makro, napríklad "VBAProject (Zošit2)":

V položke ponuky „Vložiť“ vyberte „Modul“:

V ľavom okne „Projekt – Projekt VBA“ by ste mali mať nový priečinok „Moduly“ a v ňom nový objekt „Module1“:

Presuňte kurzor do pravého "Veľkého" vstupného poľa a stlačte ctrl+v, skopírované makro sa vloží do modulu:

Makrá v programe MS Excel je možné vkladať na tieto miesta:

  • Do Modulu zvyčajne vkladajú kód makier, ktoré spustí užívateľ stlačením tlačidla (ako napr. v našom prípade) alebo kód funkcií (vzorcov);
  • Do pracovného hárka zvyčajne vkladajú kód makier, ktorých spustenie by malo nastať automaticky v závislosti od akcií používateľa alebo zmien údajov v hárku (údaje sa zmenili, makro sa vykonalo);
  • V Pracovnom zošite zvyčajne vkladajú kód makier, ktorých spustenie by malo nastať automaticky v závislosti od úkonov vykonaných na knihe (súbore). Napríklad makro, ktoré sa spustí pri otvorení alebo zatvorení zošita alebo pri jeho uložení;
  • Súčasťou používateľského formulára môžu byť aj makrá.

Osoba, ktorá kód publikuje, zvyčajne uvádza, kam sa má vložiť, do modulu, hárka alebo zošita.

Ak chcete vložiť kód do pracovného hárka, vyberte príslušný hárok v ľavom okne editora VBA, dvakrát naň kliknite ľavým tlačidlom myši, presuňte kurzor do pravého vstupného poľa a vložte kód.

Ak chcete vložiť kód do knihy, vyberte možnosť „Táto kniha“:


Poďme cvičiť. Vložte nižšie uvedený kód do "Hárok1".

Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo a If Target = 2 Then VBA.MsgBox("Cell " & Target.Address & " = 2") End If a: Exit Sub End Sub

Toto makro zobrazí informačnú správu, ak do ľubovoľnej bunky hárka zadáte „2“.

Vráťte sa do zošita, prejdite na „Hárok1“ a do bunky „A1“ zadajte číslo „2“ a stlačte Zadajte, po ktorom by ste mali vidieť nasledujúcu správu:

Ak vidíte túto správu, urobili ste všetko správne. Ak nie, potom ste kód prilepili niekde na nesprávne miesto, skúste to znova.

Pri vkladaní kódu si musíte dávať pozor, kam ho vkladáte. Môžete to urobiť tak, že sa pozriete na to, čo je napísané v názve okna editora VBA:

2. Hľadanie a používanie funkcie

Na internete nájdeme VBA kód funkcie, ktorá počíta napríklad počet slov v bunke:

Verejná funkcia CountWordsInCell(Cell As Range) Dim q As Variant Application.Volatile q = VBA.Split(Application.WorksheetFunction.Trim(Cell.Value), " ") CountWordsInCell = UBound(q) + 1 End Function

Skopírujte kód, stlačte klávesovú skratku Alt+F11, otvorí sa editor VBA:


Do našej knihy pridáme nový modul a skopírovaný kód vložíme do tohto modulu:


Zatvorte editor VBA a prejdite do svojho zošita. Vytvorte nový hárok (voliteľné) v bunke A1 zadajte text "mama umývala rám." Stojíme v bunke, v ktorej chceme získať výsledok (počet slov), v ponuke "Vzorce" kliknite na tlačidlo "Vložiť funkciu":

V okne „Vložiť funkciu“, ktoré sa otvorí, v poli „Kategória“ vyberte „Definované používateľom“

V zozname dostupných funkcií vyberte „Počet slov v bunke“ a kliknite na „OK“:

Zadajte požadované argumenty a kliknite na „OK“:

Dostaneme výsledok:

Dôležité:

Ak zošit, do ktorého ste vložili makro, neuložíte ako „zošit s podporou makra“, všetky moduly s makrami sa vymažú a celú túto prácu budete musieť neskôr zopakovať.

Ak pri vkladaní makra do modulu uvidíte namiesto nejakého textu červené znaky " ???????? "

To znamená, že máte problém s kódovaním, ktorý sa vyskytuje pri kopírovaní textu v azbuke z niektorých prehliadačov. Ak chcete vyriešiť tento problém, skúste skopírovaný kód vložiť do prázdneho hárka MS Excel ako „Text Unicode“. Ak to chcete urobiť, prejdite do zošita MS Excel, vyberte alebo vytvorte prázdny hárok, postavte sa do bunky "A1" a stlačte klávesové skratky Ctrl+Alt+V. Mala by sa zobraziť ponuka "Prilepiť špeciálne", vyberte "Text Unicode" a kliknite na "OK".

Kód bude potrebné vložiť do pracovného hárka bez otáznikov:

Potom ešte raz skopírujte kód vložený do hárka a vložte ho do modulu.

Ak sa vám v editore VBA nezobrazuje okno „Projekt – Projekt VBA“, prejdite na kartu ponuky „Zobraziť“ a v zozname vyberte „Prieskumník projektu“ alebo stlačte klávesovú skratku ctrl+r: