Makros werden in neuerem Excel langsamer ausgeführt? (Microsoft Excel)
Dave hat ein Windows XP-System, auf dem noch eine alte Version von Excel 97 installiert ist. Dieses System verfügt über ein Makro, mit dem Informationen in einem Arbeitsblatt verarbeitet werden. Es ist in der Lage, 500 Informationszeilen in etwa 12 Sekunden zu verarbeiten. Auf einem neueren Computer, auf dem Excel 2010 unter Windows 7 ausgeführt wird, dauert die Ausführung desselben Makros, das mit denselben Daten ausgeführt wird, ungefähr 3 bis 4 Minuten. Beide Maschinen haben den gleichen Speicher (4 GB) und vergleichbare Prozessoren. Dave fragt sich, warum das Makro in der neueren Version von Excel so viel langsamer läuft.
Es ist sehr schwer, etwas anderes als die allgemeinsten Kommentare abzugeben, ohne den Code tatsächlich zu sehen, aber das bedeutet nicht, dass es nichts zu sagen gibt. :>) Als erstes möchten Sie überprüfen, wie Ihr Makro funktioniert. Durchläuft es beispielsweise alle Zeilen des Arbeitsblatts, um es zu verarbeiten? (Obwohl das Makro 500 Zeilen mit Informationen verarbeitet, bedeutet dies nicht, dass nicht jede Zeile im Arbeitsblatt durchlaufen wird.) Der Grund dafür kann sein, dass frühere Versionen von Excel nur mehr als 65.000 Zeilen in einem Arbeitsblatt verwendet haben Die neuesten Versionen können 16-mal so viele Zeilen verarbeiten (über 1.000.000). Wenn die Ausführung Ihres Makros zuvor 12 Sekunden gedauert hätte, wären 192 Sekunden 16-mal so lang, was zwischen 3 und 4 Minuten liegt.
Es gibt auch Berichte, dass Excel 2010 ziemlich regelmäßig mit dem Druckertreiber kommuniziert, wie dies in früheren Versionen von Excel nicht der Fall war. Sie können herausfinden, ob dies Ihr Makro verlangsamt, indem Sie die Kommunikation zu Beginn Ihres Makros ausschalten:
Application.PrintCommunication = False
Denken Sie am Ende Ihres Makros daran, die Eigenschaft auf True zurückzusetzen, damit Excel wieder mit dem Drucker kommunizieren kann.
Es könnte auch sein, dass die neuere Maschine etwas anderes aufweist, auch wenn der Unterschied geringfügig ist. Auf dem neueren Computer können beispielsweise andere Hintergrundprogramme ausgeführt werden als auf dem älteren Computer – von einem Antivirenprogramm bis hin zu Spracherkennungssoftware. Darüber hinaus werden möglicherweise verschiedene Excel-Add-Ins geladen, die nicht auf dem früheren System vorhanden sind. Sie würden nicht denken, dass solche Dinge die Makroleistung beeinträchtigen würden, aber sie könnten es wirklich. Sie werden es natürlich erst wissen, wenn Sie herausfinden, was geladen wird, es deaktivieren und dann erneut versuchen, Ihr Makro auszuführen.
Es kann auch sein, dass der neuere Computer über einige externe Geräte verfügt, die regelmäßig abgefragt werden müssen, was zu einer Verlangsamung führen kann. In meinem Büro befindet sich ein System mit einer externen Festplatte, die über einen USB-Anschluss angeschlossen ist. Manchmal muss das System selbst (Windows) das externe Laufwerk ausschalten und einschalten, und währenddessen passieren die Dinge auf dem Computer im Wesentlichen. Schuldige Geräte können USB-Anschlüsse, Scanner, Netzwerklaufwerke usw. sein. Dies kann sehr frustrierend sein, insbesondere wenn etwas verlangsamt wird, das nicht lange dauern sollte.
Ein guter Vorschlag in diesem Fall ist, sich nicht nur auf das zu verlassen, was Sie mit einem einzelnen Excel 2010-System finden. Wenn Sie Zugriff auf mehrere Computer haben – möglicherweise sogar außerhalb des Büros -, versuchen Sie es mit dem Makro, um zu sehen, was passiert. Wenn es schneller läuft, wissen Sie, dass auf dem langsamen 2010-System etwas Unsichtbares im Spiel ist.
Wenn Sie feststellen, dass wirklich alles „gleich“ ist, müssen Sie möglicherweise den VB-Editor auf dem System aufrufen und die verschiedenen Teile Ihres Makros zeitlich steuern. Dies ist mühsam, kann Ihnen jedoch dabei helfen, einzugrenzen, wo genau das Makro festsitzt.
Wenn Sie sich für diesen letzteren Weg entscheiden, lohnt es sich, in das Nachschlagewerk eines guten Excel VBA-Programmierers zu investieren. Es gibt mehrere auf dem Markt, also stöbern Sie ein bisschen herum. (Sie können nichts falsch machen, was von John Walkenbach verfasst wurde, und ich habe gute Dinge über Excel 2007 VBA Programmer’s Reference gehört.)
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (12440) gilt für Microsoft Excel 2010.