Het behoud van de Undo List

Als u werkt in Excel, is er een beetje een "vangnet" op zijn plaats met betrekking tot wijzigingen die u aanbrengt. De meeste mensen weten dat als ze een potje van maken, kunnen ze snel op Ctrl + Z of klik op de knop Ongedaan maken op de linkerbovenhoek van het programmavenster. Als je niet bevalt wat je net deed, kunt u eenvoudig ongedaan maken en weer terug naar de gang van zaken vóór.

Wanneer u een macro uitvoert, maar de macro niet "spelen aardig" met de Undo lijst. In feite, het runnen van een macro helemaal wist de Undo lijst, en daarom kunt u niet automatisch de effecten van het uitvoeren van de macro ongedaan te maken. Er is geen intrinsieke command-in Excel of in VBA-naar de lijst Ongedaan behouden. Er zijn een paar manieren waarop je het probleem kunt benaderen, echter.

Als je voelt dat je zou willen om de effecten van een macro ongedaan maken, het eerste wat je kunt doen is om de werkmap op te slaan voordat het uitvoeren van de macro. Dit, in feite, geeft je een "pre-macro" versie van het werkboek. Als u later wilt terugkeren naar deze versie, gewoon de werkmap te sluiten zonder op te slaan en plaats het opnieuw van schijf.

Een andere optie is om de manier waarop je je macro's te heroverwegen. Als je een macro dat veel van de verwerking van de gegevens doet in het werkblad, de code van de macro, zodat het onderhoudt, in het geheugen, de toestand van iets dat het verandert. U kunt vervolgens een aparte macro die deze informatie leest en effectief ongedaan maakt de effecten van het eerste macro.

Om deze aanpak echt handig te maken, kan de laatste stap in uw primaire macro zijn om "dingen" informatie over de Undo stack. Deze informatie kan vervolgens worden gebruikt, door de gebruiker, om "ongedaan maken" van de macro die u hebt gemaakt. Zo zou de volgende macro-opdracht de laatste in uw primaire macro zijn:

Application.OnUndo "Primaire Macro", "UndoPrimary"

Na deze opdracht, wanneer de gebruiker kijkt naar de lijst Ongedaan maken, zal hij of zij de tekst "Primary Macro." Als ze kiezen voor deze optie uit de lijst Ongedaan maken, dan is uw "ongedaan maken" macro (UndoPrimary) wordt uitgevoerd.

U dient er rekening mee dat deze aanpak niet te redden wat er op de lijst ongedaan maken voordat je liep de macro-er lijkt geen manier om dat te doen. Primaire Macro: wanneer uw primaire macro is door middel van hardlopen, zal er slechts één optie beschikbaar op de lijst Ongedaan zijn.

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (12.513) is van toepassing op Microsoft Excel 2007, 2010 en 2013. U kunt een versie van deze tip voor de oudere menu-interface van Excel vindt u hier: Behoud van de Undo List.