Sunteți pe pagina 1din 8

ACTIVE RANGE

Microsoft proporciona ejemplos de programacin slo como ilustracin, sin ninguna


garanta ya sea expresa o implcita. Esto incluye, entre otras, las garantas implcitas de
comerciabilidad e idoneidad para un fin determinado. En este artculo se da por supuesto
que ya conoce el lenguaje de programacin que se muestra, as como las herramientas
empleadas para crear y depurar procedimientos. Los ingenieros de soporte tcnico de
Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no
modificarn estos ejemplos para ofrecer mayor funcionalidad ni crearn procedimientos
adaptados a sus necesidades especficas. En los ejemplos de este artculo se usan los
mtodos de Visual Basic que se enumeran en la tabla siguiente.
Mtodo
Argumentos
-----------------------------------------Activate
ninguno
Cells
rowIndex, columnIndex
Application.Goto
reference, scroll
Offset
rowOffset, columnOffset
Range
cell1
cell1, cell2
Resize
rowSize, columnSize
Select
ninguno
Sheets
index (o sheetName)
Workbooks
index (o bookName)
End
direction
CurrentRegion
ninguno
En los ejemplos de este artculo se usan
las propiedades de tabla siguiente. <Formatting
Type="FixedText"><![CDATA[
Propiedad
Uso
--------------------------------------------------------------------ActiveSheet
especificar la hoja activa
ActiveWorkbook especificar el libro activo
Columns.Count
contar el nmero de columnas en el elemento
especificado
Rows.Count
contar el nmero de filas en el elemento especificado
Selection
referirse al rango seleccionado en este momento

1. Cmo seleccionar una celda en la hoja activa


Para seleccionar la celda D5 en la hoja activa, puede utilizar cualquiera de los ejemplos
siguientes:
ActiveSheet.Cells(5, 4).Select

-o bienActiveSheet.Range("D5").Select

2. Cmo seleccionar una celda en otra hoja del mismo libro


Para seleccionar la celda E6 en otra hoja del mismo libro, puede utilizar cualquiera de los
ejemplos siguientes:

Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
o bien
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))

O bien, puede activar la hoja y usar el mtodo 1 anterior para seleccionar la celda:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select

3. Cmo seleccionar una celda en una hoja de un libro diferente


Para seleccionar la celda F7 en una hoja de un libro diferente, puede utilizar cualquiera de
los ejemplos siguientes:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)

o bien
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")

O bien, puede activar la hoja de clculo y, a continuacin, usar el mtodo 1 anterior para
seleccionar la celda:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select

4. Cmo seleccionar un rango de celdas en la hoja activa


Para seleccionar el rango C2:D10 en la hoja activa, puede utilizar cualquiera de los
ejemplos siguientes:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
ActiveSheet.Range("C2:D10").Select
ActiveSheet.Range("C2", "D10").Select

5. Cmo seleccionar un rango de celdas en otra hoja del mismo libro


Para seleccionar el rango D3:E11 en otra hoja del mismo libro, puede utilizar cualquiera de
los ejemplos siguientes:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")

O bien, puede activar la hoja y usar el mtodo 4 anterior para seleccionar el rango:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select

6. Cmo seleccionar un rango de celdas en una hoja de un libro diferente

Para seleccionar el rango E4:F12 en una hoja de otro libro, puede utilizar cualquiera de los
ejemplos siguientes:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")

O bien, puede activar la hoja y usar el mtodo 4 anterior para seleccionar el rango:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select

7. Cmo seleccionar un rango con nombre en la hoja activa


Para seleccionar el rango con nombre "Test" de la hoja activa, puede utilizar cualquiera de
los ejemplos siguientes:
Range("Test").Select
Application.Goto "Test"

8. Cmo seleccionar un rango con nombre en otra hoja del mismo libro
Para seleccionar el rango con nombre "Test" en otra hoja del mismo libro, puede utilizar el
ejemplo siguiente:
Application.Goto Sheets("Sheet1").Range("Test")

O bien, puede activar la hoja y usar el mtodo 7 anterior para seleccionar el rango con
nombre:
Sheets("Sheet1").Activate
Range("Test").Select

9. Cmo seleccionar un rango con nombre en una hoja de un libro diferente


Para seleccionar el rango con nombre "Test" en una hoja de otro libro, puede utilizar el
ejemplo siguiente:
Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")

O bien, puede activar la hoja y usar el mtodo 7 anterior para seleccionar el rango con
nombre:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select

10. Cmo seleccionar una celda relativa a la celda activa


Para seleccionar una celda que se encuentra cinco filas ms abajo y cuatro columnas a la
izquierda de la celda activa, puede utilizar el ejemplo siguiente:

ActiveCell.Offset(5, -4).Select

Para seleccionar una celda que se encuentra dos filas ms arriba y tres columnas a la
derecha de la celda activa, puede utilizar el ejemplo siguiente:
ActiveCell.Offset(-2, 3).Select

Nota: se producir un error si intenta seleccionar una celda que est "fuera de la hoja de
clculo". El primer ejemplo anterior devolver un error si la celda activa se encuentra entre
en las columnas A y D, ya que si se mueve cuatro columnas a la izquierda, la celda activa
se desplazara a una direccin de celda no vlida.

11. Cmo seleccionar una celda relativa a otra celda (que no sea la celda
activa)
Para seleccionar una celda que se encuentra cinco filas ms abajo y cuatro columnas a la
derecha de la celda C7, puede utilizar cualquiera de los ejemplos siguientes:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
ActiveSheet.Range("C7").Offset(5, 4).Select

12. Cmo seleccionar un rango de celdas separadas por un rango especfico


Para seleccionar un rango de celdas que sea del mismo tamao que el rango con nombre
"Test" pero que estn desplazadas cuatro filas ms abajo y tres columnas a la derecha,
puede utilizar el ejemplo siguiente:
ActiveSheet.Range("Test").Offset(4, 3).Select

Si el rango con nombre est en otra hoja (que no sea la activa), active primero esa hoja y, a
continuacin, seleccione el rango con el ejemplo siguiente:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select

13. Cmo seleccionar un rango especificado y cambiar el tamao de la


seleccin
Para seleccionar el rango con nombre "Database" y, a continuacin, extender la seleccin
cinco filas, puede utilizar el ejemplo siguiente:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
Selection.Columns.Count).Select

14. Cmo seleccionar un rango especificado, desplazarlo y cambiar su


tamao

Para seleccionar un rango cuatro filas ms abajo y tres columnas a la derecha del rango con
nombre "Database" e incluir dos filas y una columna ms que el rango con nombre, puede
utilizar el ejemplo siguiente:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
Selection.Columns.Count + 1).Select

15. Cmo seleccionar la unin de dos o ms rangos especificados


Para seleccionar la unin (es decir, el rea combinada) de los dos rangos con nombre "Test"
y "Sample", puede utilizar el ejemplo siguiente:
Application.Union(Range("Test"), Range("Sample")).Select

Tenga en cuenta que ambos rangos deben estar en la misma hoja para que este ejemplo
funcione. Observe tambin que el mtodo Union no funciona entre diferentes hojas. Por
ejemplo, esta lnea funciona correctamente
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))

pero esta lnea


Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))

devuelve el mensaje de error:


Error en la clase de aplicacin del mtodo Union

16. Cmo seleccionar la interseccin de dos o ms rangos especificados


Para seleccionar la interseccin de los dos rangos con nombre "Test" y "Sample", puede
utilizar el ejemplo siguiente:
Application.Intersect(Range("Test"), Range("Sample")).Select

Tenga en cuenta que ambos rangos deben estar en la misma hoja para que este ejemplo
funcione.

Los ejemplos 17 a 21 de este artculo hacen referencia al siguiente conjunto de datos de


ejemplo. En cada ejemplo se especifica el rango de celdas de los datos del ejemplo que se
seleccionaran.
A1:
A2:
A3:
A4:
A5:
R6:

Nombre
a
b
c
Total

B1: Ventas
B2: $10
B3:
B4: $10
B5:
B6: $20

C2:
C3:
C4:
C5:
C6:

C1: Cantidad
5
10
5
20

17. Cmo seleccionar la ltima celda de una columna de datos contiguos


Para seleccionar la ltima celda de una columna contigua, utilice el ejemplo siguiente:

ActiveSheet.Range("a1").End(xlDown).Select

Cuando este cdigo se utilice con la tabla de ejemplo, se seleccionar la celda A4.

18. Cmo seleccionar la celda en blanco en la parte inferior de una columna


de datos contiguos
Para seleccionar la celda situada debajo de un rango de celdas contiguas, utilice el ejemplo
siguiente:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select

Cuando este cdigo se utilice con la tabla de ejemplo, se seleccionar la celda A5

19. Cmo seleccionar un rango completo de celdas contiguas en una columna


Para seleccionar un rango de celdas contiguas en una columna, utilice uno de los ejemplos
siguientes:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
o bien
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
End(xlDown).Address).Select

Cuando este cdigo se utilice con la tabla de ejemplo, se seleccionarn las celdas A1 a A4.

20. Cmo seleccionar un rango completo de celdas que no sean contiguas en


una columna
Para seleccionar un rango de celdas que no sean contiguas en una columna, utilice uno de
los ejemplos siguientes:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select
o bien
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
End(xlUp).Address).Select

Cuando este cdigo se utilice con la tabla de ejemplo, se seleccionarn las celdas A1 a A6.

21. Cmo seleccionar un rango rectangular de celdas

Para seleccionar un rango de celdas rectangular alrededor de una celda, utilice el mtodo
CurrentRegion. El rango seleccionado mediante el mtodo CurrentRegion es un rea
limitada por cualquier combinacin de filas en blanco y columnas vacas. A continuacin se
muestra un ejemplo de cmo utilizar el mtodo CurrentRegion:
ActiveSheet.Range("a1").CurrentRegion.Select

Este cdigo seleccionar las celdas entre A1 y C4. Otros ejemplos para seleccionar el
mismo rango de celdas son los siguientes:
ActiveSheet.Range("a1", _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
o bien
ActiveSheet.Range("a1:" & _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select

En algunos casos, es posible que desee seleccionar las celdas entre A1 y C6. En este
ejemplo, el mtodo CurrentRegion no funcionar porque hay una lnea en blanco en la fila
5. Los ejemplos siguientes seleccionarn todas las celdas:
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
o bien
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _
ActiveSheet.Cells(lastRow, lastCol).Address).Select

22. Cmo seleccionar varias columnas no contiguas de longitud variable


Para seleccionar varias columnas no contiguas de longitud variable, utilice la tabla de
ejemplo siguiente y el ejemplo de macro:
A1: 1
A2: 2
A3: 3
A4:
A5:
R6:

B1:
B2:
B3:
B4:
B5:
B6:

1
2
3
4
5

C1:
C2:
C3:
C4:
C5:
C6:

1
2
3
4
5
6

D1:
D2:
D3:
D4:
D5:
D6:

1
2
3
4

StartRange = "A1"
EndRange = "C1"
Set a = Range(StartRange, Range(StartRange).End(xlDown))
Set b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a,b).Select

Cuando este cdigo se utilice con la tabla de ejemplo, se seleccionarn las celdas A1:A3 y
C1:C6.

NOTAS SOBRE LOS EJEMPLOS

Normalmente se puede omitir la propiedad ActiveSheet, ya que se considera


implcita si una hoja concreta no tiene nombre. Por ejemplo, en lugar de escribir

ActiveSheet.Range("D5").Select

puede utilizar:
Range("D5").Select

Generalmente tambin se puede omitir la propiedad ActiveWorkbook. A menos


que se nombre un libro concreto, el libro activo se considera implcito.
Cuando use el mtodo Application.Goto, si desea utilizar dos mtodos Cells dentro
del mtodo Range cuando el rango especificado est en otra hoja (no en la activa),
debe incluir el objeto Sheets cada vez. Por ejemplo:

Application.Goto Sheets("Sheet1").Range( _
Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
Sheets("Sheet1").Cells(4, 5)))

Para cualquier elemento entre comillas (por ejemplo, el rango con nombre
"Prueba"), tambin puede utilizar una variable cuyo valor sea una cadena de texto.
Por ejemplo, en lugar de escribir

ActiveWorkbook.Sheets("Sheet1").Activate

puede utilizar
ActiveWorkbook.Sheets(myVar).Activate

donde el valor de myVar es "Sheet1".