Sie sind auf Seite 1von 8

Cmo seleccionar celdas y rangos mediante procedimientos de Visual Basic

Id. de artculo: 291308 - Ver los productos a los que se aplica este artculo Este artculo se public anteriormente con el nmero E291308 Expandir todo | Contraer todo

En esta pgina Ms informacin


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 bienApplication.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 bienApplication.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")

O bien, puede activar la hoja y 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 bienActiveSheet.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 bienActiveSheet.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 bienActiveSheet.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 bienlastCol = 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". Volver al principio | Enviar comentarios

Referencias
Para obtener ms informacin acerca de cmo usar el cdigo de ejemplo de este artculo, haga clic en el nmero de artculo siguiente para verlo en Microsoft Knowledge Base: 290140 Cmo ejecutar el cdigo de ejemplo de los programas de Office XP incluido en los artculos de Knowledge Base Volver al principio | Enviar comentarios Nota: es un artculo de "PUBLICACIN RPIDA" creado directamente por la organizacin de soporte tcnico de Microsoft. La informacin aqu contenida se proporciona como est, como respuesta a problemas que han surgido. Como consecuencia de la rapidez con la que lo hemos puesto disponible, los materiales podran incluir errores tipogrficos y pueden ser revisados en cualquier momento sin previo aviso. Vea las Condiciones de uso para otras consideraciones Volver al principio | Enviar comentarios

Propiedades
Id. de artculo: 291308 - ltima revisin: mircoles, 06 de marzo de 2013 - Versin: 1.0
La informacin de este artculo se refiere a: Palabras clave:

Microsoft Office Excel 2003 Microsoft Office Excel 2007 Microsoft Excel 2010

kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308 Volver al principio | Enviar comentarios

Das könnte Ihnen auch gefallen