/ / Funções voláteis do Excel VBA

Funções voláteis do Excel VBA

Por padrão, as UDFs (User Defined Functions) em Excel VBA não são voláteis. Eles só são recalculados quando qualquer um dos argumentos da função é alterado. função volátil será recalculado sempre que o cálculo ocorrer em qualquer célula da planilha. Vamos dar uma olhada em um exemplo fácil para explicar isso um pouco mais.

1. Abra o Editor do Visual Basic e clique em Inserir, Módulo.

Crie uma função chamada MYFUNCTION que retorna a soma da célula selecionada e a célula abaixo dessa célula.

2. Adicione as seguintes linhas de código:

Function MYFUNCTION(cell As Range)

MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function

3. Agora você pode usar essa função, como qualquer outra função do Excel.

Função não volátil no Excel VBA

4. Esta é uma função não volátil. As funções não voláteis são recalculadas somente quando qualquer um dos argumentos da função é alterado. Altere o valor da célula B2 para 8.

Função

5. Agora altere o valor da célula B3 para 11.

Qualquer outra alteração celular

Explicação: a função não volátil não é recalculada quando qualquer outra célula da folha é alterada.

6. Atualize a função da seguinte forma para tornar a função volátil:

Function MYFUNCTION(cell As Range)

Application.Volatile
MYFUNCTION = cell.Value + cell.Offset(1, 0).Value

End Function

7. Altere o valor da célula B3 para 12.

Resultado:

Função volátil no Excel VBA

Nota: você precisa inserir a função novamente para torná-la volátil (ou atualizá-la colocando o cursor na barra de fórmulas e pressionando Enter).

Leia também: