Excel VBA Redimensionar Rango

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on marzo 4, 2022

Cambiar el tamaño de un rango usando VBA

Este tutorial demostrará cómo utilizar la propiedad Resize del objeto Range para cambiar para devolver un nuevo rango redimensionado del objeto Range original.

Sintaxis

La sintaxis de la propiedad Resize es

Range("A1").Resize(tamañoFila, TamañoColumna)

Donde Range(«A1») es su rango inicial. RowSize y ColumnSize deben ser mayores que cero. Cada entrada es opcional (por ejemplo, puede omitir RowSize para cambiar sólo el número de columnas, o viceversa).

Redimensionar el número de filas y columnas

El siguiente ejemplo amplía el rango con una celda A1 al rango A1:D10 aumentando el número de filas a 10 y el de columnas a 5.

Sub redimensionar()
    Range("A1").Resize(5, 3).Select
End Sub

resimensionar rango

 

O, más comúnmente, asignará el rango redimensionado a una variable:

   ' Redimensionar el rango al tamaño deseado y asignarlo a una variable
    Set newRng = ActiveSheet.Range("A1").Resize(5, 3)

Redimensionar sólo el número de filas

El siguiente ejemplo cambia sólo el número de filas:

   ' Sólo cambia el tamaño de las filas, el nuevo rango será $A$1:$A$10
    Set newRng = Range("A1").Resize(10)

Cambiar el tamaño del número de columnas solamente

El siguiente ejemplo cambia el número de columnas solamente:

   ' Cambia el tamaño de las columnas solamente, el nuevo rango será $A$1:$E$1
    Set newRng = Range("A1").Resize(, 5)

Redimensionar el rango de la tabla para excluir el encabezado

Si tiene una tabla en la hoja activa con una fila de cabecera, el código seleccionará primero toda la tabla y luego se moverá hacia abajo una fila para excluir la cabecera utilizando el método Range.Offset. Luego utilizará la propiedad Range.Resize para reducir el tamaño en una fila.

Sub SeleccionarDatosDeTabla()
    ' **IMPORTANTE**
    ' Haga clic en cualquier celda de la tabla antes de ejecutar la macro
    
    ' Bajar una fila usando Offset y luego reducir el tamaño del rango en una fila
    Set Tabla1 = ActiveCell.CurrentRegion.Offset(1, 0)
    Set Tabla1 = Tabla1.Resize(Tabla1.Rows.Count - 1, Tabla1.Columns.Count)
     
    ' Se seleccionan los datos excluyendo la fila de cabecera
    Tabla1.Select
End Sub

Escribir un array de 2 dimensiones en un rango

Otro uso común es escribir un array de 2 dimensiones en una hoja. Como el rango a escribir debe coincidir con el tamaño del array, que normalmente no se conoce de antemano, se utiliza el método Resize para establecer el rango de salida. El siguiente ejemplo leerá los datos del rango A1:E10 en la hoja activa en un array y escribirá el array en la hoja de salida empezando por la celda A1:

Sub escribirArray()
    'lee los datos en un array
    Data = Rango("A1:E10").Value
    ' Redimensiona el rango de salida y escribe el array
    Worksheets("Salida").Range("A1").Resize(UBound(Data, 1), UBound(Data, 2)).Value = Data
End Sub

Escrito por: Vinamra Chandra

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