Start makro når en betingelse i en Excel -tabell er oppfylt

Innholdsfortegnelse

Du kan bruke et triks for å starte en makro så snart en IF -funksjon i Excel -regnearket gir et bestemt resultat

En makro skal kjøres i en Excel -tabell så snart en IF -tabellfunksjon returnerer en logisk verdi. Ellers skal en tekst bare vises.

Du løser dette problemet med en brukerdefinert VBA-funksjon. Du jobber med en funksjonsprosedyre i stedet for en delprosedyre.

Hvis det allerede er en makro du vil starte med en IF -funksjon, kan du kopiere koden til funksjonsprosedyren eller ringe subprosedyren fra den.

En makro med navnet "Startmacro" brukes som et eksempel og åpner bare en enkel dialogboks. Følg disse trinnene:

  1. Start først VBA -redaktøren. Du kan gjøre dette i alle versjoner av Excel ved hjelp av tastekombinasjonen ALT F11.
  2. Velg kommandoen INSERT - MODULE for å sette inn et nytt modulark.

Skriv inn følgende VBA -kommandoer:

Offentlig funksjon Startmakro () Som streng
Ringannonse
Start makro = "Startet."
Sluttfunksjon
Undervisning ()
MsgBox "Makro startet"
Slutt Sub

Programkoden består av to separate deler. Det første fragmentet representerer den nye STARTMAKRO -tabellfunksjonen. Det andre fragmentet brukes til å vise teksten "Makro har startet."

Etter å ha angitt kommandoene, ring kommandoen CLOSE AND RETURN TO MICROSOFT EXCEL i FIL -menyen i VBA -editoren. Dette bringer deg tilbake til bordet ditt.

Hvordan inkludere makroen i en IF -funksjon

For å se om makroen fungerer som den skal, skriver du inn følgende funksjon i celle A2 i en tabell:

= HVIS (A1 = 1; startmakro (); "Ikke startet.")

Hvis du skriver inn tallet 1 i celle A1, blir makroen kalt av din brukerdefinerte funksjon. Meldingsvinduet vises som vist i følgende figur:

Så er det teksten "Startet". I cellen. Den brukerdefinerte regnearkfunksjonen returnerte dette resultatet til Excel.

Hvis celle A1 har et annet innhold enn 1, startes ikke makroen. I dette tilfellet angir IF -funksjonen teksten "Ikke startet". som et resultat

Banen som presenteres er en praksis som Microsoft ikke anbefaler. Meldingsvinduer skal ikke vises i brukerdefinerte funksjoner.

Det er ikke nødvendig å skille de to makroene START MAKRO og DISPLAY. Du kan også klare deg uten CALL -kommandoen i VBA -makroen og inkludere kommandoene for delprogrammet direkte i FUNCTION -underprogrammet.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave