|
10 |
Subscript out of bounds |
Handheld Basic |
|
Descrição do Erro: |
Este erro ocorre quando o programador especifica um elemento fora dos limites do array, exemplo:
O array possui os seguintes elementos
Elemento 1, elemento 2, elemento 3, elemento 4
Então o programador tenta acessar o elemento 5, mas não existe, erro 10. Se tentar acessar o elemento 0, a mesma coisa.
Dim A(1 To 4) as Integer
MsgBox A(5) ' Erro #10, o array possui a posição máxima 4.
MsgBox A(0) ' Erro #10, o array possui a posição mínima 1. |
|
Possível solução: |
|
|
A solução é simples, basta ter a certeza que está dentro do range do Array usando o UBound e o LBound conforme o exemplo:
Private Function Average(ByRef a() as Double) as Double
Dim min as Integer, max as Integer, i as Integer
Dim sum as Double
If Dimensions(a)<>1 Then Err.Raise 5
min = LBound(a,1)
max = UBound(a,1)
For i=min To max
sum = sum = a(i)
Next i
Average = sum / (max - min + 1)
End Sub |
|

contador
|