Guillermo hat eine Reihe von Makros, die er routinemäßig ausführt, und wenn er jedes manuell ausführt, funktionieren sie einwandfrei. Er hat versucht, alle Makros in ein „RunAll“ -Makro zu platzieren (daher muss er nur ein Makro anstelle von sechs einzelnen Makros ausführen), und jetzt wird eines davon nicht richtig ausgeführt. Wenn er das RunAll-Makro ausführt, wird die Fehlermeldung angezeigt, dass eine Zelle geschützt und schreibgeschützt ist. Es gibt jedoch keinen Schutz auf dem Blatt, und wenn er die Makros einzeln ausführt, wird der Fehler nicht angezeigt.

Es sollte selbstverständlich sein, dass das Makro, das einzeln, aber nicht in Verbindung mit den anderen gut ausgeführt wird, auf etwas stößt, das dazu führt, dass es nicht richtig funktioniert. Dies bedeutet wahrscheinlich, dass ein Makro ausgeführt wird, bevor es die Arbeitsmappe in einem anderen Zustand verlässt, als wenn Sie die Makros einzeln ausgeführt hätten.

Wenn das fehlerhafte Makro beispielsweise das dritte in der Reihe ist, das ausgeführt wird, überprüfen Sie die ersten beiden Makros, um festzustellen, was sie tun. Ändern sie die ausgewählten Zellen? Ändern sie das aktive Arbeitsblatt? Ändern sie irgendwelche Bedingungen, die das dritte Makro erwartet? All dies kann dazu führen, dass das dritte Makro nicht richtig funktioniert.

Es ist der zweite Vorschlag – über das aktive Arbeitsblatt -, der das wahrscheinlichste Szenario darstellt. Wenn Sie das Makro einzeln ausführen, stehen die Chancen gut, dass Sie es mit einem bestimmten aktiven Arbeitsblatt ausführen. Die anderen Makros können jedoch das aktive Arbeitsblatt in ein anderes ändern, und dieses andere Arbeitsblatt kann dasjenige sein, auf das Schutz angewendet wird.

Die Lösung besteht darin, jedes Makro zu überprüfen, um sicherzustellen, dass die Standortinformationen (Arbeitsblatt, aktive Zelle, ausgewählte Zellen usw.) gespeichert werden.

bevor Sie Änderungen an diesen vornehmen. Wenn sie gespeichert sind, ist es einfach, sie am Ende des Makros wiederherzustellen.

Wenn dies immer noch nicht funktioniert, müssen Sie möglicherweise ein Debugging durchführen. Verwenden Sie im Makro „RunAll“ den VBA-Editor, um einen Haltepunkt in der Zeile festzulegen, die das fehlerhafte Makro aufruft. Sie können dann den „Schritt in“

verwenden Befehl, um in das Makro zu treten und zu untersuchen, wo der Fehler auftritt. Achten Sie besonders darauf, welches Arbeitsblatt und welche Zellen das Makro zu ändern versucht, und prüfen Sie dann, ob Sie herausfinden können, was mit den früheren Makros geschieht, um zu diesem Arbeitsblatt und diesen Zellen zu gelangen. Sie können eine der folgenden Zeilen im Direktfenster verwenden, um zu sehen, wo Sie sich befinden:

? ActiveSheet.Name ? ActiveCell.Address

Während das Aufspüren dieser Art von Fehlern eine Herausforderung sein kann, ist das Licht am Ende des Tunnels, dass Sie ein perfekt funktionierendes „RunAll“ -Makro erhalten, mit dem Sie viel Zeit sparen können.

_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 (12710) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.