Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Erro Subindice Fuera de intervalo.

Estas en el tema de Erro Subindice Fuera de intervalo. en el foro de Visual Basic clásico en Foros del Web. Estimados colegas... tengo el siguiente problema: 'ASIGNO UN VALOR paso5_d2 = Format(paso5_d2, "##,##0.00") Dim paso5_5_d2() As String 'SEPARO DECIMAL DEL ENTERO If Val(paso5_d2) - Int(Val(paso5_d2)) ...
  #1 (permalink)  
Antiguo 16/02/2013, 10:06
 
Fecha de Ingreso: abril-2012
Mensajes: 61
Antigüedad: 12 años, 7 meses
Puntos: 1
Erro Subindice Fuera de intervalo.

Estimados colegas...
tengo el siguiente problema:


'ASIGNO UN VALOR
paso5_d2 = Format(paso5_d2, "##,##0.00")

Dim paso5_5_d2() As String

'SEPARO DECIMAL DEL ENTERO

If Val(paso5_d2) - Int(Val(paso5_d2)) <> 0 Then

paso5_5_d2 = Split(paso5_d2, ".")

Else
paso5_5_d2(1) = "0"
End If

hasta aca funciona el tema es que recorro mediante un bucle y si pasa que el primer valor extraído es un entero me da un error de fuera de intervalo, ahora si el el segundo en adelante entero no hay probelma...

Alguien sabe porque ???

Desde ya muchas gracias !!!!!
  #2 (permalink)  
Antiguo 17/02/2013, 17:21
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años, 1 mes
Puntos: 53
Respuesta: Erro Subindice Fuera de intervalo.

Hola, supongo que es porque paso5_5_d2() no está realmente dimensionado al no haberse ejecutado el Split, sin embargo si lo ha hecho en el caso de que el primero sea decimal.

Si quieres continuar con esta rutina, creo que deberias hacer algo así

If Val(paso5_d2) - Int(Val(paso5_d2)) <> 0 Then
paso5_5_d2 = Split(paso5_d2, ".")
Else
paso5_5_d2 = Split(paso5_d2 & ".0", ".")
End If

Aunque tambien funcionaría y sería mas simple utilizar siempre la segunda opcion

paso5_5_d2 = Split(paso5_d2 & ".0", ".") y siempre utilizar los indices 0 y 1

Supongamos el valor 15 harias Split de "15" & ".0" por tanto tienes 0 y 1

Si el valor fuese 15.2 harias Split de "15.2" & ".0" tienes 0, 1, 2 pero utiliza 0 y 1

Espero entiendas la idea.

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: erro, fuera
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:27.