Supongamos que hay una macro example_code
en un archivo excel 2016: example_excel.xlsm
que tiene mucho código pero no crea archivos externos (todos los cálculos se realizan en example_excel.xlsm
.
Tenía curiosidad por saber si hay una manera de:
- Romper / pausar el código de ejecución en un momento arbitrario.
- Agregue manualmente la siguiente línea en el código que: Ejecuta / llama a una función / sub que:
- Guarda el completo
example_excel.xlsm
estado (incluidas la hoja y la celda que están activadas y seleccionadas, así como las variables / entorno de ejecución de código), - Ciérralo en cualquier punto arbitrario del código, y
- Vuelva a abrir el Excel
- Continuar ejecutando código
example_code
desde donde lo dejaste, - Después de eliminar la línea insertada que guarda el estado de Excel,
- ya sea al instante
- o después de hacer clic en 1 botón / ejecutando 1 macro?
Ya que tengo un código complejo que se ejecuta en instancias de 2 horas mientras se ejecuta Configuraciones programadas múltiples del "solucionador" y mientras soluciono problemas en un estado específico del solucionador, estoy esperando una hora antes de que se produzca / se active ese estado.
Ahora, la solución más fácil sería buscar todos los parámetros, estados de hoja y celda que están presentes en ese estado, almacenarlos en una hoja separada y luego reinicializarlos. Pero eso no permite flexibilidad en la resolución de problemas si se necesita evaluar otro estado, ni es conveniente cuando se usa el objeto .ie que tiene un bucle infinito dentro de él, por ejemplo. el padre tiene un hijo que tiene un artículo que es el padre del niño otra vez (pensé que esto existía, aunque no estoy seguro).
La respuesta difícil es; reescriba / refactorice su código para que sea menos complejo y más perspicaz. Que definitivamente tengo que hacer, sin embargo, incluso cuando se hace eso, una herramienta generalizada para guardar los estados mientras se ejecuta es al menos para mí, deseable.
Intentos hasta ahora: [en edición-será elaborado.] Mi principal dificultad inicial es que no sé cómo ejecutar todos los parámetros / variables si se desconoce la lista de parámetros.
Hasta ahora, dado que el problema original consistía en varias ejecuciones de 2 horas, he escrito un código que copia automáticamente todas las hojas y todos los módulos y formularios desde el Excel actual a un Excel diferente. Eso permite guardar todo excepto las variables dentro del código, ni la activación de la hoja y la celda.
Dado que ese código no se aplica específicamente a un tiempo arbitrario durante un código en ejecución, ni copia las variables utilizadas por excel, considero que el código está fuera de tema, a menos que se solicite lo contrario.
Siento que estoy buscando un enfoque de solución muy limitado, por lo que las sugerencias para buscar opciones diferentes / más amplias para resolver el problema son bienvenidas