Na spustenie makra môžete použiť trik, akonáhle funkcia IF vo vašej tabuľke programu Excel prinesie určitý výsledok
Makro sa má vykonať v tabuľke programu Excel, akonáhle funkcia tabuľky IF vráti logickú hodnotu. V opačnom prípade by sa mal text jednoducho zobraziť.
Tento problém vyriešite používateľom definovanou funkciou VBA. Pracujete s procedúrou funkcie namiesto sub procedúry.
Ak už existuje makro, ktoré chcete začať funkciou IF, môžete skopírovať kód do procedúry Function alebo z nej zavolať procedúru Sub.
Makro s názvom „Startmacro“ sa používa ako príklad a vyvoláva iba jednoduché dialógové okno. Nasleduj tieto kroky:
- Najprv spustite editor VBA. Môžete to urobiť vo všetkých verziách Excelu pomocou kombinácie klávesov ALT F11.
- Vyberte príkaz VLOŽIŤ - MODUL, aby ste vložili nový list modulu.
Zadajte nasledujúce príkazy VBA:
Verejná funkcia Startmakro () ako reťazec
Volať inzerát
Spustiť makro = "Spustené."
Ukončiť funkciu
Pomocný displej ()
MsgBox „Makro sa spustilo“
Koniec pod
Programový kód sa skladá z dvoch samostatných častí. Prvý fragment predstavuje novú tabuľkovú funkciu STARTMAKRO. Druhý fragment slúži na zobrazenie textu „Makro sa spustilo“.
Po zadaní príkazov zavolajte v ponuke SÚBOR v editore VBA príkaz ZATVORIŤ A NÁVRAT NA MICROSOFT EXCEL. Tým sa dostanete späť k svojmu stolu.
Ako zahrnúť makro do funkcie IF
Ak chcete zistiť, či makro funguje správne, zadajte do bunky A2 tabuľky nasledujúcu funkciu:
= IF (A1 = 1; startmakro (); "Nespustené.")
Ak do bunky A1 zadáte číslo 1, makro bude volané vami definovanou funkciou. Zobrazí sa okno so správou, ako je znázornené na nasledujúcom obrázku:
Potom je tu text „Spustené“. V cele Užívateľom definovaná tabuľková funkcia vrátila tento výsledok do Excelu.
Ak má bunka A1 iný obsah ako 1, makro sa nespustí. V takom prípade funkcia IF nastaví text „Nespustené“. ako výsledok
Uvedená cesta je postup, ktorý spoločnosť Microsoft neodporúča. Okná správ by sa nemali zobrazovať v rámci funkcií definovaných užívateľom.
Nie je potrebné oddeľovať dve makrá SPUSTIŤ MAKRO a DISPLEJ. Môžete sa tiež zaobísť bez príkazu CALL v makre VBA a zahrnúť príkazy pre podprogram priamo do podprogramu FUNKCIE.