Feche e reinicie o Excel em um ponto arbitrário ao executar uma macro?

0

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:

  1. Quebre / pause o código de execução em um momento arbitrário.
  2. Adicione manualmente a próxima linha no código que: Executa / chama uma função / sub que:
  3. Salva o estado completo 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),
  4. fechá-lo em qualquer ponto arbitrário no código e
  5. Reabra o Excel
  6. Continue o código de execução example_code de onde parou,
  7. Depois de remover a linha inserida que salva o estado do Excel,
  8. instantaneamente
  9. ou depois de clicar em 1 botão / executar 1 macro?

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!

    
por a.t. 15.05.2018 / 10:56

0 respostas