Compartir a través de


Range (objeto)

Importante

Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

Representa una celda, una fila, una columna, una selección de celdas que contienen uno o más bloques contiguos de celdas o un rango 3D.

Notas

En esta sección se describen los siguientes métodos y propiedades para devolver un objeto Range:

Ejemplo

Use Range(arg), donde arg asigna un nombre al rango, para obtener un objeto Range que represente una sola celda o un rango de celdas. En el ejemplo siguiente se coloca el valor de la celda A1 en la celda A5.

Worksheets("Sheet1").Range("A5").Value = _
    Worksheets("Sheet1").Range("A1").Value

Ejemplo

En el ejemplo siguiente se rellena el rango A1:H8 con números aleatorios y se establece la fórmula de cada celda del rango. La propiedad Range, si se emplea sin un calificador de objeto (un objeto colocado a la izquierda del punto), devuelve un rango de la hoja activa. Si la hoja activa no es una hoja de cálculo, este método no se llevará a cabo con éxito. Use el método Activate para activar una hoja de cálculo antes de usar la propiedad Range sin un calificador de objeto explícito.

Worksheets("Sheet1").Activate
Range("A1:H8").Formula = "=Rand()"    'Range is on the active sheet

Ejemplo

En el ejemplo siguiente se borra el contenido del rango denominado Criteria.

Nota

Si usa un argumento de texto para la dirección del rango, debe especificar la dirección en notación de estilo A1 (no se puede usar la notación de estilo R1C1).

Worksheets(1).Range("Criteria").ClearContents

Ejemplo

Use Cells(fila, columna), donde fila es el índice de la fila y columna es el índice de la columna, para obtener una sola celda. En el siguiente ejemplo se establece en 24 el valor de la celda A1.

Worksheets(1).Cells(1, 1).Value = 24

Ejemplo

En el siguiente ejemplo se establece la fórmula de la celda A2.

ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)"

Ejemplo

Aunque también puede usar Range("A1") para obtener la celda A1, en algunas ocasiones la propiedad Cells puede ser más conveniente, ya que permite usar una variable para la fila o la columna. En el siguiente ejemplo se crean encabezados de fila y columna en Sheet1. Tenga en cuenta que, después de activar la hoja de cálculo, puede usar la propiedad Cells sin una declaración explícita de hoja (devuelve una celda de la hoja activa).

Nota

Aunque podría usar funciones de cadena de Visual Basic para modificar las referencias de estilo A1, es mucho más sencillo (y una mejor práctica de programación) usar la notación Cells(1, 1).

Sub SetUpTable()
Worksheets("Sheet1").Activate
For TheYear = 1 To 5
    Cells(1, TheYear + 1).Value = 1990 + TheYear
Next TheYear
For TheQuarter = 1 To 4
    Cells(TheQuarter + 1, 1).Value = "Q" & TheQuarter
Next TheQuarter
End Sub

Ejemplo

Use expresión.Cells(fila, columna), donde expresión es una expresión que devuelve un objeto Range, y fila y columna son relativos a la esquina superior izquierda del rango, para obtener una parte del rango. En el siguiente ejemplo se establece la fórmula para la celda C5.

Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=Rand()"

Ejemplo

Use Range(celda1, celda2), donde celda1 y celda2 son objetos Range que especifican la primera y la última celda, para obtener un objeto Range. En el siguiente ejemplo se establece el estilo de línea de los bordes de las celdas A1:J10.

Nota

Observe el punto delante de cada propiedad Cells. El punto es necesario si el resultado de la instrucción With anterior se debe aplicar a la propiedad Cells; en este caso, para indicar que las celdas están en la hoja de cálculo uno (sin el punto, la propiedad Cells devolvería las celdas de la hoja activa).

With Worksheets(1)
    .Range(.Cells(1, 1), _
        .Cells(10, 10)).Borders.LineStyle = xlThick
End With

Ejemplo

Use Offset(fila, columna), donde fila y columna son los desplazamientos de fila y columna, para obtener un rango en el desplazamiento especificado a otro rango. En el ejemplo siguiente se selecciona la celda situada tres filas debajo y una columna a la derecha de la celda de la esquina superior izquierda de la selección actual. No se puede seleccionar una celda que no esté en la hoja activa, por lo que primero se debe activar la hoja.

Worksheets("Sheet1").Activate
  'Can't select unless the sheet is active
Selection.Offset(3, 1).Range("A1").Select

Ejemplo

Use Union(rango1, rango2, ...) para devolver rangos de varias áreas, es decir, rangos compuestos por dos o más bloques contiguos de celdas. En el siguiente ejemplo se crea un objeto definido como la unión de los rangos A1:B2 y C3:D4 y, a continuación, se selecciona el rango definido.

Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
Worksheets("sheet1").Activate
Set r1 = Range("A1:B2")
Set r2 = Range("C3:D4")
Set myMultiAreaRange = Union(r1, r2)
myMultiAreaRange.Select

Ejemplo

La propiedad Areas es muy útil para trabajar con selecciones que contienen varias áreas. Divide una selección de varias áreas en objetos Range individuales y después devuelve los objetos en forma de colección. Puede usar la propiedad Count de la colección devuelta para comprobar una selección que contiene varias áreas, como se muestra en el siguiente ejemplo.

Sub NoMultiAreaSelection()
    NumberOfSelectedAreas = Selection.Areas.Count
    If NumberOfSelectedAreas > 1 Then
        MsgBox "You cannot carry out this command " & _
            "on multi-area selections"
    End If
End Sub

Nota

Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.