Porniți macrocomanda atunci când este îndeplinită o condiție dintr-un tabel Excel

Cuprins

Puteți utiliza un truc pentru a porni o macro de îndată ce o funcție IF din foaia dvs. de calcul Excel oferă un anumit rezultat

O macro trebuie executată într-un tabel Excel de îndată ce o funcție de tabel IF returnează o valoare logică. În caz contrar, ar trebui să fie afișat un text.

Rezolvați această problemă cu o funcție VBA definită de utilizator. Lucrați cu o procedură Function în loc de o procedură Sub.

Dacă există deja o macro pe care doriți să o începeți cu o funcție IF, puteți copia codul în procedura Function sau puteți apela procedura Sub din aceasta.

O macro cu numele „Startmacro” este utilizată ca exemplu și apelează doar o simplă casetă de dialog. Urmați acești pași:

  1. Mai întâi porniți editorul VBA. Puteți face acest lucru în toate versiunile de Excel folosind combinația de taste ALT F11.
  2. Selectați comanda INSERT - MODUL pentru a insera o nouă foaie de modul.

Introduceți următoarele comenzi VBA:

Funcția publică Startmakro () Ca șir
Anunț de apel
Start macro = "Started".
Funcția finală
Afișaj secundar ()
MsgBox „Macro a început”
Sfârșitul Sub

Codul programului constă din două părți separate. Primul fragment reprezintă noua funcție de tabel STARTMAKRO. Al doilea fragment este folosit pentru a afișa textul „Macro a început”.

După introducerea comenzilor, apelați comanda CLOSE AND RETURN TO MICROSOFT EXCEL din meniul FILE din editorul VBA. Acest lucru te aduce înapoi la masa ta.

Cum se include macro-ul într-o funcție IF

Pentru a vedea dacă macro-ul funcționează corect, introduceți următoarea funcție în celula A2 a unui tabel:

= IF (A1 = 1; startmakro (); "Nu a început.")

Dacă introduceți numărul 1 în celula A1, macro-ul va fi apelat de funcția dvs. definită de utilizator. Fereastra de mesaje apare așa cum se arată în figura următoare:

Apoi, este textul „Început”. În celulă. Funcția de calcul tabelar definită de utilizator a returnat acest rezultat în Excel.

Dacă celula A1 are un alt conținut decât 1, macro-ul nu este pornit. În acest caz, funcția IF setează textul „Nu a început”. ca urmare

Calea prezentată este o practică pe care Microsoft nu o recomandă. Ferestrele de mesaje nu trebuie afișate în funcțiile definite de utilizator.

Nu este necesar să separați cele două macro-uri START MACRO și DISPLAY. De asemenea, puteți face fără comanda CALL în macrocomanda VBA și include comenzile pentru subrutină direct în subrutina FUNCȚIE.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave