Starta makro när ett villkor i en Excel -tabell är uppfyllt

Innehållsförteckning

Du kan använda ett trick för att starta ett makro så snart en IF -funktion i ditt Excel -kalkylblad ger ett visst resultat

Ett makro ska köras i en Excel -tabell så snart en IF -tabellfunktion returnerar ett logiskt värde. Annars ska en text helt enkelt visas.

Du löser detta problem med en användardefinierad VBA-funktion. Du arbetar med ett funktionsförfarande istället för ett underförfarande.

Om det redan finns ett makro som du vill starta med en IF -funktion kan du kopiera koden till funktionsproceduren eller ringa till Sub -proceduren från den.

Ett makro med namnet "Startmacro" används som exempel och tar bara fram en enkel dialogruta. Följ dessa steg:

  1. Starta först VBA -redigeraren. Du kan göra detta i alla versioner av Excel med tangentkombinationen ALT F11.
  2. Välj kommandot INSERT - MODULE för att infoga ett nytt modulblad.

Ange följande VBA -kommandon:

Offentlig funktion Startmakro () Som sträng
Ring annons
Startmakro = "Startat."
Avsluta funktion
Undervisning ()
MsgBox "Makro startad"
Avsluta Sub

Programkoden består av två separata delar. Det första fragmentet representerar den nya STARTMAKRO -tabellfunktionen. Det andra fragmentet används för att visa texten "Makro har startat."

När du har angett kommandona, ring kommandot STÄNG OCH ÅTERKOMMANDE TILL MICROSOFT EXCEL i FIL -menyn i VBA -redigeraren. Detta tar dig tillbaka till ditt bord.

Så här inkluderar du makrot i en IF -funktion

För att se om makrot fungerar korrekt, ange följande funktion i cell A2 i en tabell:

= IF (A1 = 1; startmakro (); "Inte startat.")

Om du anger siffran 1 i cell A1, anropas makrot av din användardefinierade funktion. Meddelandefönstret visas som visas i följande bild:

Sedan finns texten "Startad". I cellen. Den användardefinierade kalkylfunktionen returnerade detta resultat till Excel.

Om cell A1 har ett annat innehåll än 1 startas inte makrot. I detta fall anger IF -funktionen texten "Inte startad". som ett resultat

Vägen som presenteras är en praxis som Microsoft inte rekommenderar. Meddelandefönster bör inte visas inom användardefinierade funktioner.

Det är inte nödvändigt att skilja de två makron STARTMAKRO och DISPLAY. Du kan också klara dig utan CALL -kommandot i VBA -makrot och inkludera kommandona för subrutinen direkt i FUNCTION -subrutinen.

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave