Erro VBA: Sem espaço na pilha

Erro VBA: Sem espaço na pilha

Eu tenho uma macro muito simples em uma planilha do Excel, que permite aos usuários recalcular.

Não tenho outras macros/códigos na pasta de trabalho e apenas esta pasta de trabalho está aberta

Sub Calculate()
    Calculate
End Sub

Isso é ativado por um botão.

Porém, quando pressionado recebo duas caixas de erro, veja a imagem.

O que Out of stack space mean? E como resolvo esse problema? insira a descrição da imagem aqui

Eu olhei neste site:

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/out-of-stack-space-error-28

Diz que posso ter muitas funções ?? Esta macro costumava funcionar bem e dificilmente faz muita coisa, por isso não consigo entender o problema.

Consigo calcular a planilha usando a opção na aba de fórmulas.

Responder1

A função que você definiu é recursiva, chamando-se incondicionalmente até que a pilha seja preenchida com todas as chamadas.

Você deve alterar o nome da sua sub-rotina, por exemplo: -

Sub Calc()
    Calculate
End Sub

Se você vincular Calc()ao botão, evitará qualquer recursão.

Responder2

Você está chamando Calcular dentro de Calcular. Cada chamada para Calcular causa outra chamada para Calcular, que então chamará Calcular... Então, eventualmente, você receberá esse erro quando a pilha for preenchida.

informação relacionada