Inhoudsopgave:
Video: Section 6 2024
werkt in Excel mogelijk aan gegevens die zo gevoelig zijn dat u deze elke keer wilt opslaan als een bepaalde cel of cellenbereik veranderd. Met deze macro kunt u een cellenbereik definiëren dat, wanneer dit wordt gewijzigd, de werkmap dwingt om op te slaan.
In het getoonde voorbeeld wilt u dat de werkmap wordt opgeslagen wanneer een bewerking wordt uitgevoerd naar een van de cellen in het bereik C5: C16.
Hoe de macro werkt
Het geheim van deze code is de Intersect-methode. Omdat u het werkblad niet wilt opslaan wanneer een oude cel verandert, gebruikt u de methode Intersect om te bepalen of de doelcel (de cel die is gewijzigd) het bereik dat is opgegeven als het triggerbereik (C5: C16 in dit geval) kruist.
De methode Intersect retourneert een van twee dingen: een bereikobject dat de kruising tussen de twee opgegeven bereiken of niets definieert. Dus in wezen moet je de doelcel tegen de Intersect-methode gooien om te controleren op een waarde van Nothing. Op dat moment kunt u beslissen of u de werkmap wilt opslaan.
Privé subwerkblad_Wijziging (ByVal-doel als bereik) 'Stap 1: varieert het gewijzigde bereik? Als Intersect (doel, bereik ("C5: C16")) niets is dan 'Stap 2: als er geen kruispunt is, verlaat u de procedure Exit Sub' Stap 3: als er een kruispunt is, slaat u de werkmap op Anders ActiveWorkbook. Opslaan 'Stap 4: Sluit de If-instructie Einde Als End Sub
In stap 1 controleert u eenvoudig om te zien of de doelcel (de cel die is gewijzigd) binnen het bereik valt dat is opgegeven met de methode Intersect. Een waarde Niets betekent dat de doelcel buiten het opgegeven bereik valt.
Stap 2 dwingt de macro om te stoppen en de procedure te verlaten als er geen kruispunt is tussen de doelcel en het opgegeven bereik.
Als er een kruispunt is, vuurt stap 3 de methode Opslaan van de actieve werkmap en overschrijft de vorige versie.
In stap 4 sluit u eenvoudig de If-instructie af. Telkens wanneer u een If-Then-Else-controle start, moet u deze afsluiten met een bijbehorend End If.
De macro
gebruiken Om deze macro te implementeren, kopieert en plakt u deze in het venster met de gebeurteniscodedocatie Worksheet_Change. Als u de macro hier plaatst, kan deze elke keer dat u een wijziging in het blad aanbrengt, worden uitgevoerd:
-
Visual Basic-editor activeren door op Alt + F11 te drukken.
-
Zoek in het projectvenster uw project- / werkboeknaam en klik op het plusteken ernaast om alle bladen te bekijken.
-
Klik op het blad van waaruit u de code wilt activeren.
-
Selecteer de gebeurtenis Wijzigen in de vervolgkeuzelijst Gebeurtenis.
-
Typ of plak de code in de zojuist gemaakte module door het bereikadres aan te passen aan uw behoeften.
Voer uw code in het werkblad Wijzigingsgebeurtenis in.