Suponha que exista um marcro example_code
em um arquivo do Excel 2016: example_excel.xlsm
, que tem muito código, mas não cria arquivos externos (todos os cálculos são executados em example_excel.xlsm
.
Eu estava curioso para saber se existe uma maneira de:
example_excel.xlsm
(incluindo a planilha e a célula ativadas e selecionadas, bem como as variáveis / ambiente de execução de código), example_code
de onde parou, Desde que eu tenho um código complexo que é executado em instâncias de 2 horas durante a execução várias configurações programadas do "solucionador" e ao solucionar um estado específico do solucionador, estou aguardando uma hora antes que esse estado ocorra / seja acionado.
Agora, o conserto fácil seria pesquisar todos os parâmetros, estados de célula e célula que estão presentes nesse estado, armazená-los em uma folha separada e, em seguida, reinicializá-los. Mas isso não permite flexibilidade na resolução de problemas se outro estado precisar ser avaliado, nem é conveniente quando se usa o objeto .ie que tem um loop infinito dentro dele, por exemplo. pai tem um filho que tem um item que é o pai da criança novamente (pensei que isso existisse, embora eu não tenha certeza).
A resposta difícil é; reescreva / refatorie seu código para que ele se torne menos complexo e mais perspicaz. Isso eu definitivamente preciso fazer, no entanto, mesmo quando isso é feito, uma ferramenta generalizada para salvar os estados durante a execução é, pelo menos para mim, desejável.
Tentativas até agora: [em edição - serão elaboradas.] Minha principal dificuldade no ponto de partida é que eu não sei como percorrer todos os parâmetros / variáveis se a lista de parâmetros for desconhecida.
Até agora, como o problema original consistia em várias execuções de 2 horas, escrevi um código que copia automaticamente todas as planilhas e todos os módulos e formulários do excel atual para um excel diferente. Isso permite salvar tudo, exceto as variáveis dentro do código, nem a ativação de planilhas e células.
Como esse código não se aplica especificamente a um tempo arbitrário durante um código em execução, nem copia as variáveis usadas pelo Excel, considero esse código off-topic, a menos que seja solicitado de outra forma.
Eu sinto que estou procurando uma abordagem de solução muito restrita, então sugestões para analisar opções diferentes / mais amplas para resolver o problema são bem-vindas!