Oi, Eduardo!
Sua dúvida é muito boa!
Valor de bExiste quando não existe a planilha "Versão Final":
Sim, quando não há uma planilha com o nome "Versão Final", a variável bExiste continuará com o valor False após a execução do For Each. Isso acontece porque, dentro do loop, você está verificando todas as planilhas e, se nenhuma delas tiver o nome "Versão Final", a variável não será alterada e permanecerá False.
Uso do IF Not False Then depois do For Each:
O IF Not False Then está sendo usado para checar a condição inversa de bExiste. Após o loop, se a variável ainda for False, significa que a planilha não foi encontrada, e o código dentro do IF Not False Then será executado.
Comportamento do IF Not ... Then:
O IF Not ... Then executa o bloco de código se a condição dentro do Not for falsa. Ou seja, se a condição for False, o IF Not a inverte para True e o código dentro do bloco será executado.
Portanto, o IF Not bExiste Then só será executado quando bExiste for False (se a planilha "Versão Final" não existir).
Resumo:
O valor de bExiste permanece False quando não encontra a planilha.
O IF Not verifica quando a condição é False, e executa o código em caso de não encontrar a planilha.
Espero que tenha ficado claro! Se precisar de mais ajuda, só avisar!