VBA-Index außerhalb des Bereichs (Laufzeitfehler '9') - Warum tritt dieser Fehler auf?

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 sowohl Ärzte als auch 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 sich beispielsweise auf das Blatt beziehen, 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.

Schauen Sie sich zum Beispiel das folgende Bild an. Ich habe drei Blätter mit den Namen Sheet1, Sheet2, Sheet3.

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 tiefgestellter Fehler tritt auf, wenn wir auf die Arbeitsmappe verweisen, die nicht vorhanden ist. Schauen Sie sich zum Beispiel den folgenden Code an.

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, 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. Vielmehr habe ich dem ersten Array sofort den Wert 25 zugewiesen.

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

Um dieses Problem zu beheben, muss ich die Länge eines Arrays mithilfe des Redim-Wortes 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 den Fehlerhandler On Error Resume Next in VBA verwenden, während ich den Code ausführe. Wir erhalten keine Fehlermeldungen. Vielmehr zeigt mir am Ende das Meldungsfeld die Fehlerbeschreibung wie folgt.

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

Interessante Beiträge...