Wie behebe ich den vba-fehler 9 (index außerhalb des gültigen bereichs)?
Index außerhalb des zulässigen Bereichs (Laufzeit: Fehler 9)
Der Fehler „Index außerhalb des Bereichs“ (Laufzeit: Fehler 9) tritt auf, wenn Sie auf ein Objekt verweisen oder versuchen, eine Variable im Code zu verwenden, die im Code nicht vorhanden ist. In diesem Fall zeigt VBA diesen Fehler an. Da jeder Code, den Sie schreiben, einzigartig ist, liegt die Fehlerursache darin.
Im folgenden Beispiel haben Sie versucht, „Sheet1“ zu aktivieren, bei dem es sich um ein Objekt handelt. Aber wie Sie in der Arbeitsmappe sehen können, existiert kein Arbeitsblatt mit dem Namen „Sheet1“ (stattdessen haben Sie „Sheet2“), sodass VBA „Subscript Out of Range“ anzeigt, um Sie darüber zu informieren, dass mit dem Code etwas nicht stimmt.
Index außerhalb des gültigen Bereichs
Es kann eine andere Situation geben, in der Sie mit dem Fehler „Subscript Out of Range Error“ konfrontiert werden, wenn Sie versuchen, ein dynamisches Array zu deklarieren, aber vergessen, die DIM- und ReDim-Anweisungen zu verwenden, um die Länge des Arrays neu zu definieren.
Im obigen Code haben Sie nun ein Array mit dem Namen „myArray“. Um es dynamisch zu machen, lassen wir die Länge des Arrays zunächst leer. Bevor Sie jedoch ein Element hinzufügen, müssen Sie die Länge des Arrays mithilfe der ReDim-Anweisung neu definieren.
Und das ist der Fehler, den wir im obigen Code gemacht haben, und VBA hat den Fehler „Skript außerhalb des gültigen Bereichs“ zurückgegeben.
Sub myMacro() Dim myArray() As Variant myArray(1) = "One" End Sub
Wie behebe ich, dass ein Index in Excel außerhalb des zulässigen Bereichs liegt?
Der beste Weg, mit diesem außerhalb des gültigen Bereichs liegenden Index umzugehen, besteht darin, effiziente Codes zu schreiben und sicherzustellen, dass der von Ihnen geschriebene Code (Schritt für Schritt) debuggt wird.
Wenn Sie einen Code Schritt für Schritt ausführen, können Sie leicht erkennen, in welcher Zeile dieses Codes ein Fehler vorliegt, da VBA Ihnen die Fehlermeldung für Fehler 9 anzeigt und diese Zeile gelb hervorhebt.
Sie können auch einen „Fehlerbehandler“ verwenden, um bei Auftreten zu einer bestimmten Fehlerzeile zu springen.
Im folgenden Code haben wir eine Zeile geschrieben, um das Blatt zu aktivieren, aber zuvor haben wir die goto-Anweisung verwendet, um sie an den Fehlerbehandler zu übergeben. Im Fehlerhandler haben Sie ein Meldungsfeld, das Ihnen eine Meldung mit dem Fehler anzeigt. Beschreibung, dass ein Fehler aufgetreten ist.
Wenn Sie diesen Code ausführen und „Sheet1“ sich nicht in der Arbeitsmappe befindet, in der Sie ihn aktivieren möchten. Es wird Ihnen ein Meldungsfeld wie unten angezeigt.
Und wenn „Sheet1“ vorhanden ist, wird überhaupt keine Meldung angezeigt.
Sub myMacro() Dim wks As Worksheet On Error GoTo myError Sheets("Sheet1").Activate myError: MsgBox "There's an error in the code: " & Err.Description & _ ". That means there's some problem with the sheet " & _ "that you want to activate" End Sub