Cambiar el tamaño del rango usando VBA
Este tutorial demostrará cómo utilizar el Cambiar el tamaño de la propiedad de El Objeto de rango para cambiar para devolver un nuevo rango redimensionado del objeto de rango original.
Sintaxis
La sintaxis de la propiedad Resize es:
1 | Rango ("A1"). Cambiar tamaño (RowSize, ColumnSize) |
Donde Rango ("A1") es su rango inicial.
RowSize y ColumnSize deben ser mayores que cero. Cada entrada es opcional (por ejemplo, puede omitir RowSize para cambiar solo el número de columnas, o viceversa).
Cambiar el tamaño del número de filas y columnas
El siguiente ejemplo expande el rango con una celda A1 al rango A1: D10 aumentando el recuento de filas a 10 y el recuento de columnas a 5.
1 | Rango ("A1"). Cambiar tamaño (10, 5) .Seleccionar |
O, más comúnmente, asignará el rango redimensionado a una variable:
12 | 'Cambiar el tamaño del rango al tamaño deseado y asignarlo a una variableEstablecer newRng = ActiveSheet.Range ("A1"). Resize (10, 5) |
Cambiar el tamaño del número de filas solamente
El siguiente ejemplo cambia solo el número de filas:
12 | 'Solo cambie el tamaño de la fila, el nuevo rango será $ A $ 1: $ A $ 10Establecer newRng = rng.Resize (10) |
Cambiar el tamaño del número de columnas solamente
El siguiente ejemplo cambia solo el número de columnas:
12 | 'Cambiar solo el tamaño de la columna, el nuevo rango será $ A $ 1: $ E $ 1Establecer newRng = rng.Resize (, 5) |
Cambiar el tamaño del rango de la tabla para excluir el encabezado
Si tiene una tabla en una hoja activa con una fila de encabezado, el código primero seleccionará la tabla completa y luego se moverá hacia abajo una fila para excluir el encabezado usando el método Range.Offset. Luego usará la propiedad Range.Resize para reducir el tamaño en una fila.
1234567891011 | Sub SelectTableData ()' **IMPORTANTE**'Haga clic en cualquier celda de la tabla antes de ejecutar la macro'Desplácese hacia abajo una fila usando Offset y luego reduzca el tamaño del rango en una filaEstablezca tbl = ActiveCell.CurrentRegion.Offset (1, 0) .Resize (tbl.Rows.Count - 1, _tbl.Columns.Count)'Los datos se seleccionan excluyendo la fila de encabezadotbl.Address.SelectEnd Sub |
Escribir matriz 2-D en rango
Otro uso común es escribir una matriz bidimensional en una hoja. Dado que el rango que se va a escribir debe coincidir con el tamaño de la matriz, que normalmente no se conoce de antemano, el método Resize se utiliza para establecer el rango de salida
El siguiente ejemplo leerá los datos en el rango A1: E10 en la hoja activa en una matriz y escribirá la matriz en la hoja "Salida" a partir de la celda A1:
123456 | Sub WriteArray ()'Leer los datos en una matrizdatos = Rango ("A1: E10"). Valor'Cambiar el tamaño del rango de salida y escribir la matrizHojas de trabajo ("Salida"). Rango ("A1"). Redimensionar (UBound (datos, 1), UBound (datos, 2)). Valor = datosEnd Sub |
Escrito por: Vinamra Chandra