Feststellen, ob eine Berechnung erforderlich ist (Microsoft Excel)
Mit Excel können Sie steuern, wann ein Arbeitsblatt neu berechnet wird. Normalerweise berechnet Excel jedes Mal neu, wenn Sie etwas in einer Zelle ändern. Wenn Sie mit sehr großen Arbeitsblättern arbeiten, die viele Formeln enthalten, möchten Sie möglicherweise die automatische Neuberechnung deaktivieren. Sie können die automatische Neuberechnung mit den Werkzeugen in der Gruppe Berechnung auf der Registerkarte Formeln des Menübands deaktivieren.
Ihre Makros können Excel auch dazu zwingen, Ihr Arbeitsblatt neu zu berechnen. Wenn Sie die automatische Neuberechnung aktiviert haben, zwingt jede Änderung, die Ihr Makro in einem Arbeitsblatt vornimmt, Excel zur Neuberechnung. Wenn Sie die automatische Neuberechnung deaktiviert haben, können Sie mit der Berechnungsmethode ein Arbeitsblatt neu berechnen:
ActiveSheet.Calculate
Wenn die Neuberechnung einige Zeit in Anspruch nimmt, sollten Sie natürlich überprüfen, ob eine Neuberechnung erforderlich ist, bevor Sie tatsächlich eine erzwingen. Es scheint, dass es kein Flag gibt, das Sie direkt überprüfen können, um festzustellen, ob eine Neuberechnung erforderlich ist. Am nächsten überprüfen Sie die gespeicherte Eigenschaft des Arbeitsmappenobjekts. Diese Eigenschaft fungiert im Wesentlichen als „Dirty Flag“ für die gesamte Arbeitsmappe. Wenn eine Arbeitsmappe nicht gespeicherte Änderungen enthält, ist die Eigenschaft Gespeichert False. Wenn alles gespeichert ist, ist es wahr.
Wie können Sie herausfinden, ob eine Neuberechnung erforderlich ist?
Denken Sie daran, dass die Berechnung nur erforderlich ist, wenn sich Änderungen in einem Arbeitsblatt ergeben. Wenn Sie etwas in einem Arbeitsblatt ändern, wird auch die Eigenschaft „Gespeichert“ der Arbeitsmappe auf „Falsch“ gesetzt. Daher können Sie die gespeicherte Eigenschaft vor der Neuberechnung überprüfen, wie hier gezeigt:
If Not ActiveWorkbook.Saved Then ActiveSheet.Calculate End If
Bei diesem Ansatz gibt es natürlich nur ein Problem: Die gespeicherte Eigenschaft wird nur dann auf True gesetzt, wenn die Arbeitsmappe tatsächlich gespeichert ist. Dies bedeutet, dass Sie mehrere Male neu berechnen können, ohne dies wirklich tun zu müssen, es sei denn, Sie verbinden Speichern und Neuberechnen wie hier gezeigt:
If Not ActiveWorkbook.Saved Then ActiveSheet.Calculate ActiveWorkbook.Save End If
Die Weisheit, dieses Problem auf diese Weise anzugehen, hängt von der Art Ihrer speziellen Situation ab. Wenn das Speichern der Arbeitsmappe länger dauert als das einfache Neuberechnen, funktioniert dieser Ansatz nicht. Wenn die Neuberechnung jedoch länger dauert (was bei einigen Arten von Operationen sehr gut möglich ist), funktioniert dieser Ansatz möglicherweise gut.
_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 (5685) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: