Macro starten wanneer aan een voorwaarde in een Excel-tabel is voldaan

Inhoudsopgave

Je kunt een trucje gebruiken om een macro te starten zodra een ALS-functie in je Excel-spreadsheet een bepaald resultaat oplevert

Een macro moet in een Excel-tabel worden uitgevoerd zodra een IF-tabelfunctie een logische waarde retourneert. Anders moet er gewoon een tekst worden weergegeven.

U lost dit probleem op met een door de gebruiker gedefinieerde VBA-functie. U werkt met een Functieprocedure in plaats van een Subprocedure.

Als er al een macro is die u met een IF-functie wilt starten, kunt u de code kopiëren naar de Function-procedure of de Sub-procedure ervan oproepen.

Een macro met de naam "Startmacro" wordt als voorbeeld gebruikt en roept alleen een eenvoudig dialoogvenster op. Volg deze stappen:

  1. Start eerst de VBA-editor. U kunt dit in alle versies van Excel doen met de toetscombinatie ALT F11.
  2. Selecteer de opdracht INSERT - MODULE om een nieuw moduleblad in te voegen.

Voer de volgende VBA-opdrachten in:

Publieke functie Startmakro () As String
Bel advertentie
Macro starten = "Gestart."
Functie beëindigen
Subdisplay ()
MsgBox "Macro gestart"
Einde sub

De programmacode bestaat uit twee afzonderlijke delen. Het eerste fragment vertegenwoordigt de nieuwe STARTMAKRO-tabelfunctie. Het tweede fragment wordt gebruikt om de tekst "Macro is begonnen" weer te geven.

Roep na het invoeren van de opdrachten de opdracht CLOSE AND RETURN TO MICROSOFT EXCEL op in het menu BESTAND in de VBA-editor. Dit brengt je terug naar je tafel.

Hoe de macro in een ALS-functie op te nemen?

Om te zien of de macro goed werkt, voert u de volgende functie in cel A2 van een tabel in:

= IF (A1 = 1; startmakro (); "Niet gestart.")

Als u het cijfer 1 in cel A1 invoert, wordt de macro aangeroepen door uw door de gebruiker gedefinieerde functie. Het berichtvenster verschijnt zoals weergegeven in de volgende afbeelding:

Dan is er de tekst "Gestart". In de cel. De door de gebruiker gedefinieerde spreadsheetfunctie heeft dit resultaat teruggestuurd naar Excel.

Als cel A1 een andere inhoud dan 1 heeft, wordt de macro niet gestart. In dit geval stelt de ALS-functie de tekst "Niet gestart" in. als resultaat

Het gepresenteerde pad is een praktijk die Microsoft niet aanbeveelt. Berichtvensters mogen niet worden weergegeven binnen door de gebruiker gedefinieerde functies.

Het is niet nodig om de twee macro's START MACRO en DISPLAY te scheiden. Je kunt ook het CALL-commando in de VBA-macro missen en de commando's voor de subroutine direct in de FUNCTION-subroutine opnemen.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave