Als ich ein Excel-Subskript ausführte, das über 30 Minuten gedauert hatte, fiel mir auf, dass Excel im Task-Manager nur zwischen 35 und 55 % der CPU-Leistung nutzte.
Ich glaube, wenn die CPU-Auslastung irgendwie erhöht worden wäre, hätte der Vorgang weniger Zeit in Anspruch genommen. Gibt es eine Möglichkeit, die CPU-Auslastung von Excel – oder anderen Apps – zu erhöhen?
Ich verwende 64-Bit-Office auf 64-Bit-Windows 10 Pro.
Antwort1
Leider ist die gesuchte Antwort nicht die gewünschte.
Während Excel-Tabellen auf mehreren Threads berechnet werden und bis zu 100 % Ihrer CPU beanspruchen können, werden Excel-Makros nur auf einem einzigen Thread ausgeführt.
Wenn die meiste Verarbeitung unvermeidbar in VBA stattfindet, kann der Code unter Umständen geändert werden, um die Leistung zu verbessern.
Antwort2
Ich hatte genau dieses Problem, auch wenn ich KEIN Makro/Sub ausgeführt habe, und habe es gelöst. Vielleicht haben andere ein ähnliches Problem wie ich und brauchen eine Lösung dafür. Der Task-Manager zeigte an, dass Excel für eine EXTREM große und SEHR formelintensive Tabelle nur etwa 10 % meiner CPU-Leistung nutzte. Als ich die Berechnung startete, dauerte sie 5 Minuten (ich verwende den manuellen Berechnungsmodus). Noch schlimmer: Das Einfügen einer Zeile in eine Tabelle dauerte Stunden. Ich verwende Excel 365 64-Bit.
Ich habe zwei Dinge getan, die das Problem gelöst haben. Vielleicht war es der zweite Schritt unten (Erhöhen der Excel-Priorität), der das Problem allein gelöst hat, ich bin mir nicht sicher. Dieser Schritt wird oben vorgeschlagen und scheint das Problem bei der Beschleunigung der Makroverarbeitung für andere nicht gelöst zu haben, daher gehe ich davon aus, dass er mir möglicherweise auch nicht geholfen hätte (wenn ich das allein getan hätte). Ich habe diesen Thread erst spät in meinen Versuchen, dieses Problem zu lösen, gelesen und Schritt zwei nicht allein (oder zuerst) ausprobiert. Wenn das bei Ihnen nicht funktioniert, versuchen Sie alle folgenden Schritte. Vielleicht ist die Kombination das Problem.
Stellen Sie sicher, dass Ihr „Maximaler Prozessorstatus“ unter „Prozessor-Energieverwaltung“ unter „Erweiterte Einstellungen“ der „Energieoptionen“ Ihrer aktuell ausgewählten „Energiesparplan“-Einstellungen auf 100 % eingestellt ist. Wenn Sie die Einstellungen für die Prozessor-Energieverwaltung unter den erweiterten Einstellungen Ihres Energiesparplans nicht sehen, müssen Sie sie hinzufügen. Anweisungen dazu finden Sie unter diesem Link „Warum fehlt die Prozessor-Energieverwaltung in meinen Energieoptionen?“: https://answers.microsoft.com/en-us/windows/forum/all/why-am-i-missing-the-processor-power-management/f5e30954-1843-464e-838b-015cc21d3ebd. Ich musste dies tun, einschließlich der Änderung meiner Registrierung. Hinweis: Als ich zum ersten Mal meine Registrierung ändern wollte, konnte ich das Attribut DWORD nicht an der angegebenen Stelle hinzufügen. Also habe ich den Editor im Administratormodus ausgeführt (obwohl dies zunächst auch nicht zu funktionieren schien ... aber dann funktionierte es, als ich es erneut versuchte ... ich weiß nicht, warum).
Setzen Sie Ihre Priorität für Excel im Task-Manager auf „Hoch“, indem Sie den Anweisungen von IUnknown oben folgen.
Ich musste das nicht tun, da Excel bereits für mich darauf eingestellt war. Sie sollten jedoch sicherstellen, dass Ihr Excel-Menüband „Datei/Optionen/Erweitert/Formeln/Einstellung für Multithread-Berechnung aktivieren“ auf „Alle Prozessoren auf diesem Computer verwenden“ eingestellt ist. In meinem Fall war dies 16.
Die Excel-CPU-Auslastung stieg dann im Task-Manager auf 98 %! Ich hoffe, dies hilft jemandem mit diesem Problem beim einfachen Berechnen seiner Tabelle (d. h. das Problem ist nicht makrobezogen).
Antwort3
Sie können die Prozesspriorität für jede Anwendung, einschließlich Excel, festlegen. Gehen Sie dazu wie folgt vor:
- Öffnen Sie den Task-Manager
- Suchen Sie unter „Apps“ nach Microsoft Excel
- Klicken Sie mit der rechten Maustaste und gehen Sie zu Details.
- Klicken Sie auf der Registerkarte „Details“ erneut mit der rechten Maustaste auf Excel.Exe und stellen Sie im Popup-Menü die Priorität auf „Hoch“ ein. (Sie können auch „Echtzeit“ wählen, aber das ist zu hoch.)