VBA-Index außerhalb des Bereichs

Excel VBA-Index außerhalb des Bereichs

Ein Index außerhalb des Bereichs ist ein Fehler, der in VBA auftritt, wenn wir versuchen, auf etwas oder eine Variable zu verweisen, die in einem Code nicht vorhanden ist. Nehmen wir beispielsweise an, wir haben keine Variable mit dem Namen x, verwenden jedoch die msgbox-Funktion für x we wird auf einen Indexfehler außerhalb des Bereichs stoßen.

VBA-Index außerhalb des Bereichs Fehler tritt auf, weil das Objekt, auf das wir zugreifen möchten, nicht vorhanden ist. Dies ist ein Fehlertyp in der VBA-Codierung und dies ist ein "Laufzeitfehler 9". Es ist wichtig, die Konzepte zum Schreiben von effizientem Code zu verstehen, und es ist noch wichtiger, den Fehler Ihres VBA-Codes zu verstehen, um den Code effizient zu debuggen.

Wenn Ihr Codierungsfehler und Sie nicht wissen, was dieser Fehler ist, wenn Sie weg sind.

Ein Arzt kann seinem Patienten keine Medikamente geben, ohne zu wissen, um welche Krankheit es sich handelt. Sicher wissen Ärzte und Patienten, dass es eine Krankheit (Fehler) gibt, aber es ist wichtig, die Krankheit (Fehler) zu verstehen, als ihr Medikamente zu geben. Wenn Sie den Fehler perfekt verstehen können, ist es viel einfacher, die Lösung zu finden.

In ähnlicher Weise wird in diesem Artikel einer der wichtigen Fehler angezeigt, auf die wir normalerweise bei der Regelmäßigkeit stoßen, z. B. der Fehler "Index außerhalb des Bereichs" in Excel VBA.

Was ist ein Fehler außerhalb des Bereichs in Excel VBA?

Wenn Sie beispielsweise auf das Blatt verweisen, das nicht in der Arbeitsmappe enthalten ist, wird der Laufzeitfehler 9 angezeigt: "Index außerhalb des Bereichs".

Wenn Sie auf die Schaltfläche "Beenden" klicken, wird die Unterprozedur beendet. Wenn Sie auf "Debuggen" klicken, gelangen Sie zu der Codezeile, in der ein Fehler aufgetreten ist, und die Hilfe führt Sie zur Microsoft-Website-Seite.

Warum tritt ein Indexfehler außerhalb des Bereichs auf?

Wie ich als Arzt sagte, ist es wichtig, den Verstorbenen zu finden, bevor ich über die Medizin nachdenke. Ein VBA-Indexfehler außerhalb des Bereichs tritt auf, wenn die Codezeile das eingegebene Objekt nicht liest.

Ein Beispiel für das folgende Bild ist, dass ich drei Blätter mit den Namen Sheet1, Sheet2, Sheet3 habe.

Jetzt im Code habe ich den Code geschrieben, um das Blatt "Verkauf" auszuwählen.

Code:

 Sub Macro2 () Sheets ("Sales"). Wählen Sie End Sub 

Wenn ich diesen Code mit der Taste F5 oder manuell ausführe, wird der Laufzeitfehler 9: „Index außerhalb des Bereichs“ angezeigt.

Dies liegt daran, dass ich versucht habe, auf das Arbeitsblattobjekt "Vertrieb" zuzugreifen, das in der Arbeitsmappe nicht vorhanden ist. Dies ist ein Laufzeitfehler, da dieser Fehler beim Ausführen des Codes aufgetreten ist.

Ein weiterer häufiger Indexfehler tritt auf, wenn wir auf die Arbeitsmappe verweisen, die nicht vorhanden ist. Ein Beispiel finden Sie im folgenden Code.

Code:

 Sub Macro1 () Dim Wb As Workbook Set Wb = Arbeitsmappen ("Salary Sheet.xlsx") End Sub 

Der obige Code besagt, dass die Variable WB gleich der Arbeitsmappe "Salary Sheet.xlsx" sein sollte. Diese Arbeitsmappe ist derzeit nicht auf meinem Computer geöffnet. Wenn ich diesen Code manuell oder über die Taste F5 ausführe, wird der Laufzeitfehler 9: "Index außerhalb des Bereichs" angezeigt.

Dies liegt an der Arbeitsmappe, auf die ich mich beziehe und die entweder noch nicht geöffnet ist oder überhaupt nicht existiert.

VBA-Indexfehler in Arrays

Wenn Sie das Array als dynamisches Array deklarieren und das Wort DIM oder REDIM in VBA nicht verwenden, um die Länge eines Arrays zu definieren, wird normalerweise ein VBA-Indexfehler außerhalb des Bereichs angezeigt. Schauen Sie sich zum Beispiel den folgenden Code an.

Code:

 Sub Macro3 () Dim MyArray () Solange MyArray (1) = 25 End Sub 

Oben habe ich die Variable als Array deklariert, aber keinen Start- und Endpunkt zugewiesen, sondern dem ersten Array sofort den Wert 25 zugewiesen.

Wenn ich diesen Code mit der Taste F5 oder manuell ausführe, wird der Laufzeitfehler 9: "Index außerhalb des Bereichs" angezeigt.

Um dieses Problem zu beheben, muss ich die Länge eines Arrays mithilfe von Redim Word zuweisen.

Code:

 Sub Macro3 () Dim MyArray () Solange ReDim MyArray (1 bis 5) MyArray (1) = 25 End Sub 

Dieser Code gibt keine Fehler.

Wie werden Fehler am Ende des VBA-Codes angezeigt?

Wenn Sie den Fehler nicht sehen möchten, während der Code ausgeführt wird, aber am Ende eine Fehlerliste benötigen, müssen Sie die Fehlerbehandlungsroutine "On Error Resume" verwenden. Schauen Sie sich den folgenden Code an.

Code:

 Sub Macro1 () Dim Wb As Workbook On Error Resume Next Set Wb = Workbooks ("Salary Sheet.xlsx") MsgBox Err.Description End Sub 

Wie wir gesehen haben, wird dieser Code Laufzeitfehler 9 auslösen: „Index in Excel VBA außerhalb des Bereichs . Aber ich muss die Fehlerbehandlungsroutine verwenden. Bei Fehlerwiederaufnahme Als nächstes in VBA werden beim Ausführen des Codes keine Fehlermeldungen angezeigt. Am Ende der Meldung wird mir die Fehlerbeschreibung wie folgt angezeigt.

Sie können die Excel-VBA-Indexvorlage außerhalb des Bereichs hier herunterladen: - VBA-Indexvorlage außerhalb des Bereichs