VBA-Fehler: Nicht genügend Stapelspeicherplatz

VBA-Fehler: Nicht genügend Stapelspeicherplatz

Ich habe ein sehr einfaches Makro in einer Excel-Tabelle, das Benutzern Neuberechnungen ermöglicht.

Ich habe keine anderen Makros/Code in der Arbeitsmappe, und nur diese Arbeitsmappe ist geöffnet

Sub Calculate()
    Calculate
End Sub

Die Aktivierung erfolgt über einen Knopf.

Beim Drücken erhalte ich jedoch zwei Fehlerfelder, siehe Bild.

Was bedeutet das Out of stack space mean? Und wie löse ich dieses Problem? Bildbeschreibung hier eingeben

Ich habe auf dieser Website nachgeschaut:

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

Es heißt, ich habe möglicherweise zu viele Funktionen? Dieses Makro hat früher einwandfrei funktioniert, tut aber kaum etwas, daher verstehe ich das Problem nicht.

Ich kann das Blatt mit der Option unter der Registerkarte „Formeln“ berechnen.

Antwort1

Die von Ihnen definierte Funktion ist rekursiv und ruft sich selbst bedingungslos auf, bis der Stapel mit allen Aufrufen gefüllt ist.

Sie sollten den Namen Ihrer Subroutine ändern, zB:-

Sub Calc()
    Calculate
End Sub

Durch die Verlinkung Calc()auf die Schaltfläche vermeiden Sie jegliche Rekursion.

Antwort2

Sie rufen Calculate innerhalb von Calculate auf. Jeder Aufruf von Calculate führt zu einem weiteren Aufruf von Calculate, das dann Calculate aufruft... Dann erhalten Sie irgendwann diesen Fehler, wenn der Stapel voll ist.

verwandte Informationen