Varat izmantot triku, lai sāktu makro, tiklīdz IF funkcija Excel izklājlapā nodrošina noteiktu rezultātu
Makro ir jāizpilda Excel tabulā, tiklīdz IF tabulas funkcija atgriež loģisku vērtību. Pretējā gadījumā teksts vienkārši jāparāda.
Jūs atrisināt šo problēmu, izmantojot lietotāja definētu VBA funkciju. Jūs strādājat ar funkciju procedūru, nevis apakšprocedūru.
Ja jau ir makro, kuru vēlaties sākt ar IF funkciju, varat kodu nokopēt Funkciju procedūrā vai no tā izsaukt apakšprocedūru.
Makro ar nosaukumu “Startmacro” tiek izmantots kā piemērs un izsauc tikai vienkāršu dialoglodziņu. Izpildiet šīs darbības:
- Vispirms palaidiet VBA redaktoru. To var izdarīt visās Excel versijās, izmantojot taustiņu kombināciju ALT F11.
- Atlasiet komandu INSERT - MODULE, lai ievietotu jaunu moduļa lapu.
Ievadiet šādas VBA komandas:
Publiskā funkcija Startmakro () kā virkne
Zvana reklāma
Start macro = "Sākts."
Beigu funkcija
Apakšējais displejs ()
MsgBox "Makro sākās"
Beigt apakš
Programmas kods sastāv no divām atsevišķām daļām. Pirmais fragments attēlo jauno STARTMAKRO galda funkciju. Otrais fragments tiek izmantots, lai parādītu tekstu "Makro ir sācies".
Pēc komandu ievadīšanas VBA redaktora izvēlnē FILE izsauciet komandu CLOSE AND RETURN TO MICROSOFT EXCEL. Tādējādi jūs atgriezīsities pie sava galda.
Kā iekļaut makro IF funkcijā
Lai redzētu, vai makro darbojas pareizi, tabulas šūnā A2 ievadiet šādu funkciju:
= IF (A1 = 1; startmakro (); "Nav sākts.")
Ja šūnā A1 ievadāt skaitli 1, makro izsauks lietotāja definētā funkcija. Ziņojumu logs parādās, kā parādīts šajā attēlā:
Tad ir teksts "Sākts". Šūnā. Lietotāja definētā izklājlapas funkcija atdeva šo rezultātu programmai Excel.
Ja šūnā A1 ir cits saturs nekā 1, makro netiek palaists. Šajā gadījumā IF funkcija nosaka tekstu "Nav sākts". rezultātā
Piedāvātais ceļš ir prakse, ko Microsoft neiesaka. Ziņojumu logus nedrīkst rādīt lietotāja definētās funkcijās.
Nav nepieciešams atdalīt divus makro START MACRO un DISPLAY. Varat arī iztikt bez komandas CALL VBA makro un iekļaut apakšprogrammas komandas tieši FUNCTION apakšprogrammā.