Moin zusammen,
habe ein VBA Makro in Excel 2010 geschrieben. Wenn ich die starten möchte, kommt die Fehlermeldung „Prozedur zu groß“.
Gibt es ein Zeilenmaximum oder was bestimmt die Grenze?
Gruß
slam
Moin zusammen,
habe ein VBA Makro in Excel 2010 geschrieben. Wenn ich die starten möchte, kommt die Fehlermeldung „Prozedur zu groß“.
Gibt es ein Zeilenmaximum oder was bestimmt die Grenze?
Gruß
slam
habe ein VBA Makro in Excel 2010 geschrieben. Wenn ich die
starten möchte, kommt die Fehlermeldung „Prozedur zu groß“.
Gibt es ein Zeilenmaximum oder was bestimmt die Grenze?
Hallo Slam,
ich kenne diesbezüglich nur ein 64 KB (KiB) Limit, weiß aber nicht ob das pro Prozedur gilt oder pro Modul, ich tippe auf Modul. Das kenne ich aber schon lange, theoretisch könnte das in XL 2010 höher liegen, aber da tippe ich auf nein.
Deine Google-Suche nach der Fehlermeldung brachte nix?
Wieviele Zeichen hast du denn in dem Modul?
Wenn du Word hast, kopiere alles in Word rein, im alten Word steht unter Extras—Wörter zählen, damit werden auch Zeichen gezählt.
http://www.xlam.ch/ ist die ultimative Seite um XL-Limits herauszufinden.
Gruß
Reinhard, der der Fehlermeldung nicht traut. An 64 KB Code muß man lang stricken…
Moin, slam,
Gibt es ein Zeilenmaximum oder was bestimmt die Grenze?
nein, die Zeilenanzahl macht es nicht aus.
Der Code wird „verdichtet“ (packen will ich es nicht nennen), d.h. da werden unnötige Leerzeichen und Kommentare rausgeschmissen. Was dann noch bleibt, wird gemessen - bei office-lösung hab ich da mal was gelesen, finde es gerade nicht.
Workaround: Zerlegen in mehrere Prozeduren à la
p1: sub
call p2
call p3
call p4
...
end sub
Gruß Ralf
Moin
fogendes gefunden bei XLam:
Meldung: „Prozedur zu gross“
Der kompilierte Code einer Prozedur darf 64 KB nicht überschreiten. Für diesen Fehler gibt es die folgende Ursache und Lösung:
Der kompilierte Code für diese Prozedur umfasst mehr als 64 KB.
» Teilen Sie diese und andere grosse Prozeduren in zwei oder mehrere kleinere Prozeduren auf.
Ich habe in der Zwischenzeit nach 2 mal nachdenken die Prozedur verringert, läuft jetzt.
Aber PI*Daumen hochgerechnet auf die alte Variante (gelöscht) ergab irgend etwas von
~10500 Worten / ~57000 Zeichen ohne Leerzeichen / ~80.000 Zeichen mit Leerzeichen.
Gruß
slam
Ich habe in der Zwischenzeit nach 2 mal nachdenken die
Prozedur verringert, läuft jetzt.
Aber PI*Daumen hochgerechnet auf die alte Variante (gelöscht)
ergab irgend etwas von
~10500 Worten / ~57000 Zeichen ohne Leerzeichen / ~80.000
Zeichen mit Leerzeichen.
Hallo slam,
lade mal mit file-upload, s. FAQ:2606 eine Beispielmappe mit den Codes hoch.
Gruß
Reinhard
Moin,
ich hatte das Modul kopiert und umgeschrieben, hab jetzt weniger als 10% der Zeilen als das ursprüngliche Modul, dieses hatte ich direkt gelöscht.
Die Prozedur soll von 37 unterschiedlichen Tabellenblättern unterschiedlich Daten zusammenkopieren, das hatte ich erst der Einfachheit/Faulheit praktisch 1:1 umgesetzt. Mit ein wenig nachdenken konnte man das in eine „Schleife“ packen wenn man eben nach jedem Durchlauf den Zeilenzähler um die richtige Differenz erhöht.
Hintergrund für das file ist ein eigenes Analysetool (Technische Analyse) für Aktieninidces bzw Aktien. Wird ständig erneuert/erweitert usw. Hat den Vorteil, man lernt auch im Excel dazu .
Gruß
slam