2012-04-26 18 views
5

Ich debugging ein Problem in einigen anderen * Fragen zu SO erwähnt und bemerkte ein seltsames Verhalten während des Debugging-Prozesses.Excel VBA "Nicht genügend Speicher" Debugging-Techniken

Das Verhalten: Erfahren 'nicht genügend Speicher' Fehler beim Einfügen komplexer Formeln. Nur ungefähr die Hälfte der 20.000 Zeilen, die ich wiederhole, erhalten Formeln, die vor dem Fehler eingefügt werden. Kommentiert praktisch alle Code, Fehler geht weg. Code inkrementell entfernen, in der Hoffnung, den spezifischen Codeabschnitt zu finden, der ihn verursacht. Beenden Sie die Auskommentierung des gesamten Codes und hören Sie auf, den Fehler zu bemerken!

Dies bedeutet, dass der exakt gleiche Code in der gleichen Excel-Instanz funktionierte, und das Fixieren nur die Ausführung verschiedener leichterer Versionen des Codes erforderte, bevor die ursprüngliche Version wiederhergestellt wurde. Was könnte das möglicherweise verursachen?

+2

Ich schlage vor, Sie versuchen Ron Bovey's [code cleaner] (http://www.appspro.com/Utilities/CodeCleaner.htm) - es überholt Code durch Exportieren, Löschen und dann wieder Einfügen der exportierten Module – brettdj

+0

+ 1 stimme ich mit Brettdj überein. Code Cleaner ist wirklich gut. Ich bin auch neugierig auf irgendein solches Beispiel, das Ihnen den Fehler gibt ... –

+0

Danke @brettdj, aber Code Cleaner hat nicht geholfen. Es ist gelungen, die .xla-Datei von 159k auf 151k zu bringen, was für mich faszinierend ist. – Trindaz

Antwort

3

Angenommen, die Daten, auf denen Sie gearbeitet haben, waren jedes Mal exakt identisch, es klingt eher nach einem Problem mit der Umgebung - das Problem könnte sein, dass das Betriebssystem nicht genügend Arbeitsspeicher hatte. In Excel 2007 wurde der verwendbare Speicher für Formeln und Pivot-Caches auf 2 Gigabyte (GB) erhöht, was wahrscheinlich nicht das Problem ist. Es ist natürlich auch begrenzt durch wie viel Speicher Ihr Betriebssystem zu dieser Zeit zur Verfügung hatte.

Das Problem ist möglicherweise aufgetreten, weil der verfügbare Betriebssystemspeicher beim ersten Test niedriger war (von anderen laufenden Prozessen ... könnte sogar von Hintergrundprogrammen wie Antivirensoftware, die einen Scan ausführen, über das Limit hinaus geschoben werden) als wenn Sie später das volle Makro ausführen würden. Ich würde versuchen, Ihr Makro mit geöffnetem Task-Manager auszuführen, um zu sehen, ob Sie irgendwo einen niedrigen physischen Speicher erreichen. Stellen Sie außerdem (unter der Annahme, dass Sie Excel 2007 oder höher verwenden) sicher, wie viel Speicher Excel verwendet, und sehen Sie, ob Sie annähernd die Grenze von 2 GB erreichen. Ich bezweifle, dass dies das Problem wäre, aber es ist zumindest eine Überprüfung wert. Wie Zairja sagte, stellen Sie sicher, dass Sie die Berechnung am Anfang auf manuell einstellen.

Sie sagten, dass Sie komplexe Formeln wurden mit ... diesen Artikel Besuche auf Improving Performance in Excel

Es gibt eine Menge nützlicher Informationen in dem Artikel, die Sie wahrscheinlich Ihr Makro optimieren helfen.

Ist das hilfreich für Sie?

Verwandte Themen