Hoe vba-fout 9 (index buiten bereik) oplossen?
Index buiten bereik (runtime: fout 9)
De Subscript Out of Range (Run Time: Error 9)-fout treedt op wanneer u naar een object verwijst of een variabele probeert te gebruiken in code die niet in de code voorkomt. In dit geval zal VBA deze fout weergeven. Omdat elke code die u schrijft uniek is, zou de oorzaak van de fout zijn.

In het volgende voorbeeld hebt u geprobeerd “Blad1” te activeren, wat een object is. Maar zoals u in de werkmap kunt zien, bestaat er geen werkblad met de naam “Blad1” (in plaats daarvan heeft u “Blad2”), dus VBA toont “Subscript buiten bereik” om u te informeren dat er iets mis is met de code.

Index buiten bereik
Er kan zich een andere situatie voordoen waarin u te maken krijgt met de foutmelding ‘Subscript Out of Range Error’ wanneer u probeert een dynamische array te declareren, maar vergeet de DIM- en ReDim-instructies te gebruiken om de lengte van de array opnieuw te definiëren.

Nu heb je in de bovenstaande code een array met de naam “myArray” en om deze dynamisch te maken laten we in eerste instantie de lengte van de array leeg. Maar voordat u een element toevoegt, moet u de lengte van de array opnieuw definiëren met behulp van de ReDim-instructie.
En dit is de fout die we hebben gemaakt in de bovenstaande code en VBA retourneerde de fout ‘Script buiten bereik’.
Sub myMacro() Dim myArray() As Variant myArray(1) = "One" End Sub
Hoe de index buiten bereik in Excel te repareren?
De beste manier om met deze buiten bereik-index om te gaan, is door efficiënte codes te schrijven en ervoor te zorgen dat u de code die u hebt geschreven (stap voor stap) debugt.

Wanneer u stap voor stap een code uitvoert, kunt u gemakkelijk weten op welke regel van die code een fout zit, omdat VBA u de foutmelding voor fout 9 laat zien en die regel geel markeert.
Het andere dat u kunt doen, is een “error handler” gebruiken om naar een specifieke foutregel te springen wanneer deze zich voordoet.
In de volgende code hebben we een regel geschreven om het werkblad te activeren, maar daarvoor gebruikten we de goto-instructie om door te geven aan de foutafhandelaar. In de foutafhandelaar hebt u een berichtvenster waarin u een bericht ziet met de melding Err. Beschrijving dat er een fout is opgetreden.

Dus wanneer u deze code uitvoert en “Blad1” niet in de werkmap staat waarin u deze probeert te activeren. Er wordt een berichtvenster weergegeven zoals hieronder.

En als de “Blad1” er is, zal er helemaal geen bericht zijn.
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