Error de VBA: sin espacio en la pila

Error de VBA: sin espacio en la pila

Tengo una macro muy simple en una hoja de Excel que permite a los usuarios volver a calcular.

No tengo otras macros/código en el libro de trabajo, y solo este libro de trabajo está abierto

Sub Calculate()
    Calculate
End Sub

Esto se activa mediante un botón.

Sin embargo, cuando presiono me aparecen dos cuadros de error, ver imagen.

Que hace Out of stack space mean? ¿Y cómo soluciono este problema? ingrese la descripción de la imagen aquí

He mirado en esta web:

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

¿Dice que puedo tener demasiadas funciones? Esta macro solía funcionar bien y apenas hace mucho, por lo que no puedo entender el problema.

Puedo calcular la hoja usando la opción en la pestaña de fórmulas.

Respuesta1

La función que ha definido es recursiva y se llama a sí misma incondicionalmente hasta que la pila se llena con todas las llamadas.

Debes cambiar el nombre de tu subrutina, por ejemplo:-

Sub Calc()
    Calculate
End Sub

Si enlaza Calc()al botón, evita cualquier recursividad.

Respuesta2

Estás llamando a Calcular dentro de Calcular. Cada llamada a Calcular provoca otra llamada a Calcular, que luego llamará a Calcular... Luego, eventualmente, obtendrás ese error cuando la pila se llene.

información relacionada