Recorrer una hoja línea a línea en VBA y obtener datos como array

publicado por: Anonymous

Estoy intentando iterar una hoja de excel a través de vba. Necesito que lea línea a línea una hoja para tener un array con cada celda, hasta encontrar la línea vacía (final).

Pongo un ejemplo de datos:

introducir la descripción de la imagen aquí

Sé que habrá datos de la columna A a la G, lo que no sé es el número de líneas que habrá.

La idea es:

Sub importarDatos()


 '
 ' importarDatos Macro
 ' 
 '
 Dim lineas As Worksheet
 Set lineas = Worksheets("Lineas")

End Sub

Me creo una macro, la cual obtiene la hoja. (Hasta aquí bien).

La pregunta es: ¿Cómo puedo obtener los datos de esa hoja en una Matriz desde A1:G1 hasta An:Gn para luego poder recorrer esa matriz con un bucle?

Necesitaré en cierto momento saber el número de línea que estoy leyendo, para escribir los datos en otra hoja (exportar los datos) en la misma línea. Es decir, cada línea de la hoja a leer, escribirá 1 línea en una nueva hoja.

PD: La hoja a leer se encuentra en la ubicación dónde voy a ejecutar la macro. Es decir, pulsando un botón (eso sé hacerlo), llamará a la macro que leerá la hoja de ese Workbook e importará en otra hoja los datos.

Gracias de antemano

solución

Y definir el rango hasta la columna 7, pasarlo al array y luego iterar en el array?

Dim RangoDatos as Range
Dim ArrayDatos as Variant
Dim is as integer

Set RangoDatos = lineas.Range("A2:G:" & lastRow)
ArrayDatos = Rangodatos

For i = 0 to Ubound(RangoDatos)

'aqui metes el código que necesites para procesar los datos

Next i

Cargar un rango en un array apenas consume tiempo e iterar por él lo mismo. Depende del número de filas que tenga a lo mejor te compensa.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *