2011-08-10 93 views
7

¿Hay alguna forma de codificar una función de deshacer en un CommandButton similar a la función de deshacer de Excel?¿Cómo programar código una función 'deshacer' en Excel-Vba?

O una función que puede invocar la tecla de método abreviado Ctrl-Z.

+0

Hay un hipo con esto, en la que cuando se llama al código VBA, se destruye la pila de deshacer (hacer una hoja de cálculo, puesto algunos artículos en él, elimínelos, luego llame a cualquier código de VBA para ver lo que quiero decir). No estoy seguro de si hay una forma de evitar esto. Otro usuario tenía un problema similar, y creo que básicamente tendría que encontrar la forma de escribir los cambios en un archivo y volver a leerlos. – jonsca

+2

Duplicado de: http://stackoverflow.com/questions/339228/building-undo-into-an-excel-vba-macro –

Respuesta

10

Agregar el botón de comando a la hoja de trabajo y asignar la macro siguiente a la misma:

Sub UndoLastAction() 

    With Application 
     .EnableEvents = False 
     .Undo 
     .EnableEvents = True 
    End With 

End Sub 

Sólo puede deshacer la última acción realizada por el usuario y no se puede deshacer los comandos de VBA.

EDIT: Si necesita deshacer aún más las capacidades ver:

Undo With Excel VBA - JKP

Cuestiones relacionadas