Bâtiment Annuler Dans un Excel Macro VBA
De macros Excel ne semblent pas permettre l'utilisation de la fonction "annuler" après leur exécution. Est-il possible de cuire undo
fonctionnalité dans une macro VBA dans Excel?
Vous devez vous connecter pour publier un commentaire.
Excel VBA a la
Application.OnUndo
fonction de gérer cela:Ma pensée est assez simple, comme la première ligne de votre macro enregistrer une copie dans un répertoire de sauvegarde, puis fermez ce classeur et rouvrir l'original. Si vous n'aimez pas les résultats de votre macro courir, tirer le classeur. Keep it simple hein?
J'ai toujours enregistrer immédiatement avant l'exécution de mes macros (en cours de test au moins) ensuite, si tout se passe en forme de poire, je peux tout quitter sans enregistrer et l'ouvrir de nouveau.
De cuisson dans la macro, vous avez essentiellement pour enregistrer l'ancien état de tout ce qui change (le contenu de la cellule, des formules, mise en forme et ainsi de suite) dans une liste, puis ont d'annuler une macro qui joue en arrière de cette liste dans l'ordre inverse.
Par exemple, si votre macro modifie une cellule C22 contenu de "3" à "7" et la mise en forme du "général" pour "le nombre, 2 décimales), votre liste serait:
De jouer à ce retour dans l'ordre inverse (avec une autre macro) permettrait d'annuler les changements.
Vous pourriez avoir un ensemble supplémentaire de la feuille de tenir la macro annuler des informations telles que:
Il ne s'intègre pas très bien avec le "vrai" annuler malheureusement, mais je ne pense pas qu'il y a moyen de contourner cela.