2
respostas

[Dúvida] Dúvida sobre o IF NOT

Boa noite,

Só uma coisa sobre a variável bExiste = False. Se existir uma planilha com o nome "Versão Final", o For Each troca o valor de bExiste de False para True. Minha dúvida começa aqui: o valor de bExiste continua sendo False quando não há nenhum "Worksheet" com o nome "Versão Final"? Por isso que o código "IF Not False Then" fica depois do "For Each"? Mais uma coisa: o IF Not ... Then só é executado quando a condição for falsa?

Obrigado!

2 respostas

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!

Marque como solucionado se te ajudar