VBA-Fehler Stapelspeicherüberlauf

27/09/2008 - 12:16 von Reinhard Schüll | Report spam
Hallo NG,

Über eine Ereignisabfrage
Private Sub Worksheet_Change(ByVal Target As Range) ' befindet sich im
Worksheet "Main"
wird weiterer VBA-Code ausgeführt, z.B. durch
If Target = [B6] Then
Application.ScreenUpdating = False
ThisWorkbook.Sheets("Main").[B4] = False
Analemma
ThisWorkbook.Sheets("Main").[B4] = True
ThisWorkbook.Sheets("Main").Activate
End If
Wenn ich nun die Bedingungsabfrage erweitere
If Target = [B6] or Target = [B2] .. Then

End If

oder etwas eleganter mit der Intersection-Funktion ..

dann erhalte ich eine Fehlermeldung Stapelspeicherüberlauf, die zum
Einfrieren von Excel führt, incl. Absturz.

In der Prozedur Analemma werden einige Copy/Paste Operationen durchgeführt,
die aber keinesfalls den Arbeitsspeicher des Rechners (4 GByte RAM)
überfordern können.

Wodurch entsteht der Stapelspeicherüberlauf?

Gruß Reinhard
 

Lesen sie die antworten

#1 Matthias Hübner
27/09/2008 - 13:06 | Warnen spam
Reinhard Schüll wrote:

Hallo NG,

Über eine Ereignisabfrage
Private Sub Worksheet_Change(ByVal Target As Range) ' befindet sich im
Worksheet "Main"
wird weiterer VBA-Code ausgeführt, z.B. durch
If Target = [B6] Then
Application.ScreenUpdating = False
ThisWorkbook.Sheets("Main").[B4] = False
Analemma
ThisWorkbook.Sheets("Main").[B4] = True
ThisWorkbook.Sheets("Main").Activate
End If
Wenn ich nun die Bedingungsabfrage erweitere
If Target = [B6] or Target = [B2] .. Then

End If

oder etwas eleganter mit der Intersection-Funktion ..

dann erhalte ich eine Fehlermeldung Stapelspeicherüberlauf, die zum
Einfrieren von Excel führt, incl. Absturz.

In der Prozedur Analemma werden einige Copy/Paste Operationen
durchgeführt, die aber keinesfalls den Arbeitsspeicher des Rechners (4
GByte RAM) überfordern können.

Wodurch entsteht der Stapelspeicherüberlauf?



vermutlich durch das Recursive aufrufen deines _Change() Eventhandlers oder
anderen Codes. Schau doch mal im Debugmodus die Aufrufeliste Strg-L an. 1
Mal vor Analemma, einmal nach Analemma

Grüße
Matthias

Ähnliche fragen