Erick, pesquisando sobre a instrução "ActiveWorkbook.RefreshAll" encontrei algumas postagens com questão parecida a sua e dentre as que vi acho que a resposta abaixo é a melhor proposta e nem precisa de macro, é só desabilitar a opção de refresh, veja se ajuda, se não retorne.
Veja a resposta do Firefly2012 - https://www.mrexcel.com/forum/excel-que ... -wait.html
Excel VBA Refresh Wait
It would be easier to simply disable backgrund refresh of the query (if you do this, when you trigger the refresh, your code will wait until the refresh has completed before executing the subsequent lines). Do this via selecting one of the cells in your external data range and in 2007+ hit the Properties button on the Data ribbon (or in 2003 right-click the mouse and select Properties - I think, can't quite remember).
Now, uncheck the box for Enable Background Refresh. Save the workbook to fix the property. Then you can simply have your subsequent code immediately following the RefreshAll line
By Google Tradutor :
Seria mais fácil simplesmente desativar a atualização do backgrund da consulta (se você fizer isso, quando você acionar a atualização, seu código aguardará até que a atualização seja completada antes de executar as linhas subseqüentes). Faça isso através da seleção de uma das células em seu alcance de dados externo e, em 2007, pressione o botão Propriedades na faixa de dados (ou, em 2003, clique com o botão direito do mouse e selecione Propriedades - eu acho, não consigo lembrar).
Agora, desmarque a caixa para Ativar atualização de plano de fundo. Salve a pasta de trabalho para corrigir a propriedade. Então você pode simplesmente ter seu código subseqüente imediatamente após a linha RefreshAll.
Se pesquisar no google pelos termos : "activeworkbook.refreshall wait" encontrará varios links a respeito.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 28/11/2017 11:10 am