Wie behebt man den Fehler „Subscript Out of Range“ in Visual Basic für Anwendungen?
Visual Basic for Applications (VBA) ist eine Implementierung der von Microsoft entwickelten Programmiersprache Visual Basic. VBA kann zum Aktivieren von UDFs, zum Automatisieren von Aufgaben und zum Zugriff auf WinAPI über DLLs verwendet werden. In letzter Zeit sind jedoch viele Berichte eingegangen, in denen Benutzer bestimmte Befehle nicht ausführen können und ein „Tiefgestellter Wert außerhalb des Bereichs, Fehler 9” Erscheint beim Versuch, dies zu tun.
Was verursacht den Fehler „Subscript Out of Range“ in VBA?
Nachdem wir zahlreiche Berichte von mehreren Benutzern erhalten hatten, beschlossen wir, das Problem zu untersuchen und eine Reihe von Lösungen zu entwickeln, um es vollständig zu beheben. Außerdem haben wir uns die Gründe angesehen, aus denen es ausgelöst wird, und sie wie folgt aufgelistet.
Nachdem Sie nun ein grundlegendes Verständnis der Art des Problems haben, werden wir uns den Lösungen zuwenden. Stellen Sie sicher, dass Sie diese in der spezifischen Reihenfolge implementieren, in der sie präsentiert werden, um Konflikte zu vermeiden.
Lösung 1: Überprüfen von Arrays
Möglicherweise haben Sie für das Array-Element einen falschen Wert definiert. Daher wird empfohlen, den Wert, den Sie für das Array-Element definiert haben, noch einmal zu überprüfen und sicherzustellen, dass es der richtige ist. Stellen Sie außerdem sicher, dass Sie die Deklaration des Arrays überprüfen und überprüfen die obere und die untere Grenze. Wenn die Arrays neu dimensioniert wurden, verwenden Sie unbedingt die LBound und UBound Funktionen zur Bedingung von Zugriffen. Überprüfen Sie die Schreibweise des Variablennamens, wenn der Index eine Variable ist.
Lösung 2: Anzahl der Elemente angeben
In einigen Fällen ist es möglich, dass Sie die Anzahl der Elemente in Ihrem Code nicht definiert haben, aufgrund derer der Fehler ausgelöst wird. Es wird empfohlen, die Anzahl der Elemente im Array mit dem . anzugeben Dim oder ReDim Funktionen.
Lösung 3: Konstrukt ändern
Dieser Fehler wird häufig ausgelöst, wenn der Benutzer ein falsches oder nicht vorhandenes Sammlungsmitglied angibt. Anstatt die Indexelemente anzugeben, empfiehlt es sich daher, mit dem „Für jeden…Weiter" bauen.
Lösung 4: Überprüfen von Schlüsselname und Index
In einigen Fällen ist es möglich, dass Sie eine Kurzform des Index verwendet haben und ein ungültiges Element angegeben wird. Daher wird empfohlen, dass Sie a gültiger Schlüssel Name und Index für die Sammlung.