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

error 9

Estas en el tema de error 9 en el foro de Visual Basic clásico en Foros del Web. hola! he creado un proramilla pa haber si domino los vectores y me da un error 9. alguien sabe xq?? 'se supone que al clikar ...
  #1 (permalink)  
Antiguo 05/11/2008, 08:25
ebu
 
Fecha de Ingreso: noviembre-2008
Mensajes: 153
Antigüedad: 15 años, 6 meses
Puntos: 0
error 9

hola! he creado un proramilla pa haber si domino los vectores y me da un error 9. alguien sabe xq??

'se supone que al clikar el Cb en el excel desde A1 para abajo se tiene que ver 1 2 3 4 5 pero nada. eso puede ser porq al pasar el vector datuak_hartu de la function tengo q pasarlo a un vector temporal en sub?? gracias.

Private Sub CommandButton1_Click()
Dim datuak_hartu() As Integer
Dim j As Integer

Range("A1").Select
For j = 1 To luzera
ActiveCell.FormulaR1C1 = datuak_hartu(j)
ActiveCell.Offset(0, 1).Select
Next j

End Sub

'se carga el vector.
Public Function datuak_hartu(luzera As Integer) As Integer
Dim i As Integer
For i = 1 To a
datuak_hartu(i) = i
Next i
End Function

'es esta funcion recoge el dato de la longitud del vector que es 5.
Public Function luzera() As Integer
Dim a As Integer
a = 5
luzera = a
End Function
  #2 (permalink)  
Antiguo 05/11/2008, 08:43
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: error 9

Estás definiendo tu array sin una longitud, lo que permite redimensionarlo, pero si no lo redimensionas no podrás usarlo de la forma como estás intentando:
Código vb:
Ver original
  1. ReDim vArray(Longitud)
Código vb:
Ver original
  1. ReDim Preserve vArray(Longitud)
En este último caso se conservan los valores anteriores.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 05/11/2008, 08:50
Avatar de Kruzado  
Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 17 años, 2 meses
Puntos: 17
Respuesta: error 9

no te compliques la vida con tantas funciones que kizas no se justifican

Private Sub CommandButton1_Click()
Dim luzera=5
Dim datuak_hartu(1 to 5) As Integer
Dim j As Integer


llena el vector
for x=1 to luzera
datuak_hartu(x)=x
next x

Range("A1").Select
For j = 1 To luzera
ActiveCell.FormulaR1C1 = datuak_hartu(j)
ActiveCell.Offset(0, 1).Select
Next j

End Sub
  #4 (permalink)  
Antiguo 05/11/2008, 09:17
ebu
 
Fecha de Ingreso: noviembre-2008
Mensajes: 153
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: error 9

hola!
sorry por lo de antes x crear dos temas, lo tendre en cuenta.

kruzado, he copy/paste el tuyo y me sigue dando error 9.

david tiene razon le tengo q meter un Redim, pero donde tendria que meter esa declaracion??xq se "supone" q al principio no se la long del array. gracias!

Public Function datuak_hartu(luzera As Integer) As Integer
Dim i As Integer
ReDim datuak_hartu (1 to 5) As Integer
'podria ser tb ReDim datuak_hartu (1 to luzera) As Integer???

For i = 1 To a
datuak_hartu(i) = i
Next i
End Function
  #5 (permalink)  
Antiguo 05/11/2008, 09:19
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: error 9

Sí, la segunda opción es válida, obtener de una variable el límite que quieres asignar a la matriz.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 05:15.