Hola quiero buscar en una hoja y el resultado dejarlo en un array o vector

bueno como decía deseo hacer una búsqueda en una hoja y que guarde en el array solo los datos que cumplen cierta condiciónesto , lo siguiente me repite el ultimo registro encontrado 47 que es el largo de la matriz, desde ya gracias por su ayuda

CURSO = cmb_curso.SelText
Dim matiz(1 To 47) As String

ultimaFila = Columns("A:A").Range("A65536").End(xlUp).Row

For i = 2 To ultimaFila
For e = 1 To 47
If Cells(i, 4) = CURSO Then
matriz(e) = Cells(i, 5)
End If
Next
Next

1 respuesta

Respuesta
1

Sì pones 2 for cuando sólo necesitas 1 es que generas el problema. ..

Una pregunta tu matriz final debe tener menos elementos que la original o algunos En blanco y otros con información según hayan cumplido con la condición.?

gracias Jaime por tu pronta respuesta te explico la hoja 1 contiene mas de 1000 alumnos de los cuales necesito dejar solo a los que pertenecen a un curso determinado sn espacios en blanco y lo del for el primero me recorre la hoja para saber cuantos registros tiene y el segundo es para recorrer el array y guardar los alumnos

Creo que podrias usar...

CURSO = cmb_curso.SelText ' Esta parte de tu codigo supongo que obtiene el valor buscado... no puedo entender si esta correcta o no sin ver el archivo completo, pero asumo que esta bien...

Dim matriz() as string ' Aqui definimos la matriz resultados sin saber aun la dimension

' Esta es la parte de tu codigo que averigua hasta que fila hay alumnos

ultimaFila = Columns("A:A").Range("A65536").End(xlUp).Row

' Aqui averiguas cuantos alumnos cumplen con tu condicion... y dimensionas la matriz con esa cantidad de alumnos

cantidad = Application.Worksheetfuncion.CountIf( Range("A:A"), CURSO)

ReDim matriz(cantidad)

' Contador para saber en que posicion de la matriz resultado estamos

e = 0

' Ahora UN SOLO loop que recorre todos los alumnos y va grabando en la matriz

For i = 2 to ultimaFila

If Cells(i, 4) = CURSO Then

e = e + 1
matriz(e) = Cells(i, 5)
End If
Next i

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas