2010-09-20 14 views
13

Ich habe diese Fehlermeldung - Procedure too large - in VBA erhalten. Was ist der Grund und Ausweg für diesen Fehler?Prozedur zu groß

Antwort

16

Sie haben wahrscheinlich eine oder mehrere gigantische Prozeduren/Funktionen und ich denke, VBA hat eine Grenze von 64k oder etwas pro Prozedur.

Sie beheben es, indem Sie diesen Vorgang in mehrere Prozeduren aufteilen, die dann von der einen Prozedur aufgerufen werden können.

Anstatt also mit:

Sub GiantProcedure() 
     ... ' a little bit of common code 
     Proc1() 
     Proc2() 
     Proc3() 

End Sub 

Sub Proc1() 
     ... ' quite a bit of code 
End Sub 

Sub Proc2() 
     ... ' quite a bit of code 
End Sub 

Sub Proc3() 
     ... ' quite a bit of code 
End Sub 
+7

Dieser Fehler wird direkt aus den 1980er Jahren ... VBA eine neue Ebene der archaischen erreicht hat ... Gesicht Palme –

5

Ihre zusammengestellt Verfahren überschreiten, können nicht 64kb:

Sub GiantProcedure() 
     ... ' lots and lots of code 
End Sub 

Sie so etwas wie haben würde. Sie sollten es in verschiedene Unterroutinen aufteilen.

http://msdn.microsoft.com/en-us/library/Aa264541

+0

Oder anders Refaktorieren Sie die Methode. –