El objeto Range

Dentro de la coleción de objetos de Excel y tal como había expuesto anteriormente Range es casi la unidad básica con la que podemos trabajar. Y digo casi porque dentro de Range podemos encontrar un objeto como es Cells (celdas). A qué nos referimos cuando hablamos de Range:

  • A un conjunto de celdas.
  • A una celda en concreto.
  • A toda una fila / columna.
  • A celdas de otras hojas.

Como propiedades el objeto Range tiene las siguientes:

  • ActiveCell->representa la primera celda activa de la ventana activa (windowactive) o especificada.
  • Areas->todos los rangos de una seleción múltiple.
  • Cells->representa a una celda o clección de ellas.
  • Columns->representa las columnas de la hoja activa,o especificada, o del rango especificado.
  • Entire column/row->la columna/fila  entera dentro del rango.
  • End->la celda situada al final del rango especificado.
  • Offset->la celda desplazada según un nº específico de fila/columna.

Formas de seleccionar celdas con Range:

Una celda sólo:

Range(“A1”).Select

Un conjunto de celdas contiguas dentro de la misma hoja:
Range(“A1:G5”).Select

Para seleccionar celdas no contiguas:
Range(“A1,A5,B4”).Select

Para seleccionar celdas no contiguas mas un conjunto contiguo:
Range(“A1,A5,B4:B8”).Select

Otro ejemplo:

La siguiente tabla muestra algunas referencias de estilo A1 utilizando el método Range.

Referencia Significado
Range(“A1”) Celda A1
Range(“A1:B5”) Celdas de la A1 a la B5
Range(“C5:D9,G9:H16”) Selección de varias áreas
Range(“A:A”) Columna A
Range(“1:1”) Fila uno
Range(“A:C”) Columnas de la A a la C
Range(“1:5”) Filas de la uno a la cinco
Range(“1:1,3:3,8:8”) Filas uno, tres y ocho
Range(“A:A,C:C,F:F”) Columnas A, C y F

De todas las propiedades descritas tal vez una de las más usadas sea Offset, que nos permite seleccionar celdas contiguas a la celda activa según una determinada posición de filas y clumnas:

expresión.Offset(RowOffset, RowOffset)

RowOffset      Variant opcional. El número de filas (positivo, negativo o cero) que indica el desplazamiento del rango. Los valores positivos desplazan hacia abajo y los negativos, hacia arriba. El valor predeterminado es 0.

ColumnOffset      Variant opcional. El número de columnas (positivo, negativo o cero) que indica el desplazamiento del rango. Los valores positivos desplazan a la derecha y los negativos, hacia la izquierda. El valor predeterminado es 0.

ActiveCell.Offset(0,0)->nos determina la posición actual

Ejemplo:

Sub ejemplo()
‘ejemplos del empleo de range y cells
‘escribo Hola en varias celdas de la hoja 2
Worksheets(“Hoja2”).Range(“A1:B5”) = “Hola”
‘lo mismo pero en celdas discontinuas
Worksheets(1).Range(“F1”, “G5”) = “Hi”
‘ahora en la hoja 2
Worksheets(“Hoja2”).Range(“J1, K3, H5”) = “AAA”
ActiveCell.Offset(2, 2) = “Me desplazo”
End Sub

Si establece una variable de objeto para un objeto Range, puede manipular fácilmente el rango utilizando el nombre de la variable.

El siguiente procedimiento crea la variable de objeto miRango y, a continuación, asigna la variable al rango A1:D5 de la Hoja1 del libro activo. Las instrucciones posteriores modifican las propiedades del rango, sustituyendo el nombre de la variable por el objeto del rango.

Sub Aleatorio()  
Dim miRango As Range
Set miRango = Worksheets(“Hoja1”).Range(“A1:D5”)
miRango.Formula = “=ALEATORIO()”
miRango.Font.Bold = True
End Sub

Utilice la función Array para identificar un grupo de hojas. El siguiente ejemplo selecciona tres hojas del libro activo.

Sub Varias()  
Worksheets(Array(“Hoja1”, “Hoja2”, “Hoja4”)).Select
End Sub

Utilice la propiedad Rows o Columns para trabajar con filas o columnas enteras. Estas propiedades devuelven un objeto Range que representa un rango de celdas. En el siguiente ejemplo, Rows(1) devuelve la fila uno de la Hoja1. A continuación, la propiedad Bold del objeto Font del rango se establece en True.

Sub FilaNegrita()
Worksheets(“Hoja1”).Rows(1).Font.Bold = True
End Sub

La siguiente tabla muestra algunas referencias de fila y columna, utilizando las propiedades Rows y Columns.

Referencia Significado
Rows(1) Fila uno
Rows Todas las filas de la hoja de cálculo
Columns(1) Columna uno
Columns(“A”) Columna uno
Columns Todas las columnas de la hoja de cálculo

Para trabajar con varias filas o columnas al mismo tiempo, cree una variable de objeto y utilice el método Union, combinando varias llamadas a la propiedad Rows o Columns. El siguiente ejemplo cambia a negrita el formato de las filas uno, tres y cinco de la hoja de cálculo uno del libro activo.

Sub VariasFilas()
Worksheets(“Hoja1”).Activate
Dim miUnión As Range
Set miUnión = Union(Rows(1), Rows(3), Rows(5))
miUnión.Font.Bold = True
End Sub
Método abreviado para hacer referencia a rangos


Podemos utilizar también corchetes cuando hacemos referencias a rangos. Utilizando corchetes, así:

 

En vez de Range(“D5”) podemos utilizar [D5]

En vez de Range(“A1:D5”) podemos utilizar [A1:D5]

Range(“A1:D5″,”G6:I17”)   —>[A1:D5,G6:I17]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: