VBA – Salida (impresión) de una matriz a un rango

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on marzo 4, 2022

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.

lista estados usa

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:

lista estados usa transpuesto

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! vba save as


Learn More!
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples