Wie behebe ich den Fehler “Index außerhalb des Bereichs” in Visual Basic für Anwendungen?
Visual Basic für Applikationen (VBA) ist eine Implementierung der von Microsoft entwickelten Programmiersprache Visual Basic. VBA kann zum Aktivieren von UDFs, zum Automatisieren von Aufgaben und zum Zugreifen auf WinAPI über DLLs verwendet werden. In jüngster Zeit sind jedoch viele Berichte eingegangen, in denen Benutzer bestimmte Befehle nicht ausführen können.Index außerhalb des Bereichs, Fehler 9”Erscheint, während Sie versuchen, dies zu tun.
Was verursacht den Fehler “Index außerhalb des Bereichs” in VBA?
Nachdem wir zahlreiche Berichte von mehreren Benutzern erhalten hatten, beschlossen wir, das Problem zu untersuchen und entwickelten eine Reihe von Lösungen, um es vollständig zu beheben. Außerdem haben wir die Gründe, aus denen es ausgelöst wird, untersucht und wie folgt aufgelistet.
- Nicht vorhandenes Element: In einigen Fällen ist es möglich, dass Sie auf ein Element im Befehl verwiesen haben, das nicht vorhanden ist. Es ist möglich, dass der Index entweder größer oder kleiner als der Bereich möglicher Indizes ist oder dass dem Array zu diesem Zeitpunkt in der Anwendung möglicherweise keine Dimensionen zugewiesen wurden.
- Undefinierte Elemente: Möglicherweise haben Sie die Anzahl der Elemente in Ihrem Code nicht identifiziert. Es ist wichtig, dass die Anzahl der Elemente in einem Array mithilfe der Befehle “Dim” oder “ReDim” definiert wird.
- Falsches Sammlungsmitglied: In einigen Fällen hat der Benutzer möglicherweise auf ein nicht vorhandenes Sammlungsmitglied verwiesen. Wenn ein falscher Verweis auf das Sammlungsmitglied gemacht wird, kann dieser Fehler ausgelöst werden.
- Kurzschrift: Möglicherweise haben Sie eine Kurzform des Index verwendet und implizit ein ungültiges Element angegeben. Es ist wichtig, einen gültigen Schlüsselnamen zu verwenden.
Nachdem Sie ein grundlegendes Verständnis der Art des Problems haben, werden wir uns den Lösungen zuwenden. Stellen Sie sicher, dass Sie diese in der Reihenfolge implementieren, in der sie angezeigt werden, um Konflikte zu vermeiden.
Lösung 1: Überprüfen von Arrays
Möglicherweise haben Sie einen falschen Wert für das Array-Element definiert. Daher wird empfohlen, den für das Array-Element definierten Wert zu überprüfen und sicherzustellen, dass er der richtige ist. Stellen Sie außerdem sicher, dass Sie die Deklaration des Arrays und überprüfen überprüfen die oberen und unteren Grenzen. Wenn die Arrays neu dimensioniert wurden, stellen Sie sicher, dass Sie die verwenden LBound und UBound Funktionen zur Konditionierung von Zugriffen. Überprüfen Sie die Schreibweise des Variablennamens, wenn der Index eine Variable ist.
Lösung 2: Angeben der Anzahl der Elemente
In einigen Fällen ist es möglich, dass Sie die Anzahl der Elemente in Ihrem Code, aufgrund derer der Fehler ausgelöst wird, nicht definiert haben. 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, wird daher empfohlen, dass Sie sich mit dem Befehl „Für jeden… Weiter” konstruieren.
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, a zu verwenden gültiger Schlüssel Name und Index für die Sammlung.