Błąd wykonania 9

kliknij, aby powiększyć

Błąd wykonania 9 – Subscript out of range

Błąd ten pojawia się w sytuacji odwołania do nieistniejącego elementu, spoza zakresu. 
Może pojawić się np. w przypadku próby odwołania do wartości zmiennej tablicowej spoza zadeklarowanej ilości elementów.
Chcąc go uniknąć – konieczne jest sprawdzenie ilości elementów, skorzystanie z procedury Redim, ewentualnie wprowadenie obsługi błędów. 
Na przykład: 

Public Sub Test1_bład9()
’procedura wywolująca bład
Dim JW() As String ’dynamiczna zmienna tablicowa
Dim k As Integer
k = 5
ReDim JW(k) ’ustalenie górnego zakresu zmiennej 
For i = 1 To 10
’ dla i=6 – pojawia się Run-time Error 9
JW(i) = „Element” & i
Next i
End Sub


Public Sub Test2_bład9()
’procedura bez błędu
Dim JW() As String
Dim k As Integer
k = 5
ReDim JW(5)
For i = 1 To 10
If i < k + 1 Then
JW(i) = „Element” & i
Else
ReDim Preserve JW(i) ’zmiana rozmiaru zmiennej tablicowej
JW(i) = „Element” & i
End If
Next i
End Sub

Inne błędy wykonania VBA (Run-time) są tu:
Błędy wykonania VBA

 

 

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *