A função do Excel é IFERROR volátil?

1

Eu tenho uma planilha do Excel bastante grande que acompanha a nossa competição de golfe. Para acelerar a folha (para uso no meu laptop antigo), estou tentando limitar o número de cálculos automáticos. Por exemplo. a pontuação total é calculada apenas se você inserir o último furo (adicionando um IF).

No entanto, meu DirectWindow (aquele que é alimentado por instruções debug.print) mostra que há muitos cálculos feitos após cada entrada. Parece que o cálculo é iniciado pelas funções (UDFs) que começam com = IFERROR.

Então, minha pergunta é: até onde sei, o IFERROR não é uma função volátil, não posso encontrar nenhuma prova disso. Mas alguém tem a experiência do oposto?

    
por Joost 26.02.2016 / 16:04

1 resposta

1

Não - IFERROR é não volátil. Acabei de testar isso da seguinte maneira:

  1. Adicionado o seguinte VBA à Folha1:

    Private Sub Worksheet_Calculate() MsgBox "Calculating" End Sub

  2. Defina a célula A1 como =NA()

  3. Defina a célula B1 como '= IFERROR (A1, "OHNO!")

Isso resulta na exibição da caixa de mensagem. No entanto, inserir dados em outra célula não .

Em seguida, alterei A1 para um número, "1" e recebi a caixa de mensagem. Inserir dados em outra célula depois disso não faz diferença.

Eu adicionei então à célula C1 =NOW() . Isso resultou no cálculo de toda vez que eu digito dados em outra célula , destacando agora adicionei uma fórmula volátil.

    
por 26.02.2016 / 16:23