VBA – Salida (impresión) de una matriz a un rango
In this Article
Este tutorial demostrará cómo dar salida a un array a un rango usando VBA.
Salida (impresión) de una matriz a un rango
Los datos que se almacenan en un array pueden ser fácilmente emitidos en una hoja de Excel. Hay 3 maneras de hacerlo.
Imprimir los datos en un rango diferente
Podemos rellenar un array con datos de un rango en Excel, y luego dar salida a los datos a un rango diferente en Excel.
Public Sub pruebaImpresion()
'declare el array
Dim rnArray() As Variant
'rellenar el array con el rango
rnArray = Range("A1:H24")
'enviar el array a otro rango de celdas
Range("J1:Q24") = rnArray()
End Sub
El array completo se copia en una línea de código en el array, y luego se emite en su totalidad a un rango diferente de celdas en la hoja.
Recorriendo un array y mostrando los datos
Este ejemplo hará un bucle a través de un array, dando salida al array en un rango.
Public Sub prueba_bucle_array()
'declare el array
Dim rnArray() As Variant
'declara el entero para almacenar el número de filas
Dim filas As Integer
'Asignar el rango a la variable del array
rnArray = Range("A1:A10")
'Recorrer en bucle los valores del array
For filas = LBound(rnArray) To UBound(rnArray)
'rellena un rango diferente con los datos
Cells(filas, 2).Value = rnArray(filas, 1)
Next filas
End Sub
LBound y UBound devuelven el índice inicial (límite inferior) y el índice final (límite superior) de un array, en este caso 1 y 10.
Transponer datos de un array
También podemos transponer los datos del Array a la hoja de Excel. Transponer permite mostrar los datos horizontalmente en la hoja de Excel. Por ejemplo, si tenemos una lista de estados en Excel y deseamos transponerlos.
Podríamos entonces ejecutar el siguiente código:
Public Sub transponerArray()
'Declarar el array
Dim rnArray() As Variant
'rellenarla con el rango
rnArray = Range("A1:A24")
'transponer los datos
Range(Cells(1, 3), Cells(1, 26)).Value = Application.Transpose(rnArray)
End Sub
Lo que daría como resultado lo siguiente:
Salida a Debug.Print
También podemos dar salida a los valores del array en la ventana inmediato .
Public Sub TestLoopArray()
'declara el array
Dim rnArray() As Variant
'declara el entero para almacenar el número de filas
Dim fila As Integer
'Asignar el rango a la variable del array
rnArray = Range("A1:A10")
'Recorrer en bucle las filas - 1 a 10
For fila = 1 To UBound(rnArray)
'salida a la ventana inmediata
Debug.Print rnArray(fila, 1)
Next fila
End Sub
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!