Active Range

8
ACTIVE RANGE Microsoft proporciona ejemplos de programación sólo como ilustración, sin ninguna garantía ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. En este artículo se da por supuesto que ya conoce el lenguaje de programación que se muestra, así como las herramientas empleadas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas. En los ejemplos de este artículo se usan los métodos de Visual Basic que se enumeran en la tabla siguiente. Método 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 artículo 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 número de columnas en el elemento especificado Rows.Count contar el número de filas en el elemento especificado Selection referirse al rango seleccionado en este momento 1. Cómo 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 bien- ActiveSheet.Range("D5").Select 2. Cómo 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:

description

ACTIVE RANGE para visual basic excel

Transcript of Active Range

Page 1: Active Range

ACTIVE RANGE Microsoft proporciona ejemplos de programación sólo como ilustración, sin ninguna garantía ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. En este artículo se da por supuesto que ya conoce el lenguaje de programación que se muestra, así como las herramientas empleadas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos adaptados a sus necesidades específicas. En los ejemplos de este artículo se usan los métodos de Visual Basic que se enumeran en la tabla siguiente. Método 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 artículo 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 número de columnas en el elemento especificado Rows.Count contar el número de filas en el elemento especificado Selection referirse al rango seleccionado en este momento

1. Cómo 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 bien- ActiveSheet.Range("D5").Select

2. Cómo 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:

Page 2: Active Range

Application.Goto ActiveWorkbook.Sheets("Sheet2").Ce lls(6, 5) o bien Application.Goto (ActiveWorkbook.Sheets("Sheet2").R ange("E6"))

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

3. Cómo 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("She et1").Cells(7, 6)

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

O bien, puede activar la hoja de cálculo y, a continuación, usar el método 1 anterior para seleccionar la celda: Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate ActiveSheet.Cells(7, 6).Select

4. Cómo 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. Cómo 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").Ra nge("D3:E11") Application.Goto ActiveWorkbook.Sheets("Sheet3").Ra nge("D3", "E11")

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

6. Cómo seleccionar un rango de celdas en una hoja de un libro diferente

Page 3: Active Range

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("She et1").Range("E4:F12") Application.Goto _ Workbooks("BOOK2.XLS").Sheets("Sheet1").Range ("E4", "F12")

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

7. Cómo 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. Cómo 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 método 7 anterior para seleccionar el rango con nombre: Sheets("Sheet1").Activate Range("Test").Select

9. Cómo 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("T est")

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

10. Cómo seleccionar una celda relativa a la celda activa

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

Page 4: Active Range

ActiveCell.Offset(5, -4).Select

Para seleccionar una celda que se encuentra dos filas más 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 cálculo". 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 desplazaría a una dirección de celda no válida.

11. Cómo seleccionar una celda relativa a otra celda (que no sea la celda activa)

Para seleccionar una celda que se encuentra cinco filas más 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. Cómo seleccionar un rango de celdas separadas por un rango específico

Para seleccionar un rango de celdas que sea del mismo tamaño que el rango con nombre "Test" pero que estén desplazadas cuatro filas más 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 continuación, seleccione el rango con el ejemplo siguiente: Sheets("Sheet3").Activate ActiveSheet.Range("Test").Offset(4, 3).Select

13. Cómo seleccionar un rango especificado y cambiar el tamaño de la selección

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

14. Cómo seleccionar un rango especificado, desplazarlo y cambiar su tamaño

Page 5: Active Range

Para seleccionar un rango cuatro filas más abajo y tres columnas a la derecha del rango con nombre "Database" e incluir dos filas y una columna más 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. Cómo seleccionar la unión de dos o más rangos especificados

Para seleccionar la unión (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")).S elect

Tenga en cuenta que ambos rangos deben estar en la misma hoja para que este ejemplo funcione. Observe también que el método Union no funciona entre diferentes hojas. Por ejemplo, esta línea funciona correctamente Set y = Application.Union(Range("Sheet1!A1:B2"), Ra nge("Sheet1!C3:D4"))

pero esta línea Set y = Application.Union(Range("Sheet1!A1:B2"), Ra nge("Sheet2!C3:D4"))

devuelve el mensaje de error: Error en la clase de aplicación del método Union

16. Cómo seleccionar la intersección de dos o más rangos especificados

Para seleccionar la intersección 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 artículo 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 seleccionarían. A1: Nombre B1: Ventas C1: Cantidad A2: a B2: $10 C2: 5 A3: b B3: C3: 10 A4: c B4: $10 C4: 5 A5: B5: C5: R6: Total B6: $20 C6: 20

17. Cómo seleccionar la última celda de una columna de datos contiguos

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

Page 6: Active Range

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

Cuando este código se utilice con la tabla de ejemplo, se seleccionará la celda A4.

18. Cómo 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).Sel ect

Cuando este código se utilice con la tabla de ejemplo, se seleccionará la celda A5

19. Cómo 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 código se utilice con la tabla de ejemplo, se seleccionarán las celdas A1 a A4.

20. Cómo 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 código se utilice con la tabla de ejemplo, se seleccionarán las celdas A1 a A6.

21. Cómo seleccionar un rango rectangular de celdas

Page 7: Active Range

Para seleccionar un rango de celdas rectangular alrededor de una celda, utilice el método CurrentRegion. El rango seleccionado mediante el método CurrentRegion es un área limitada por cualquier combinación de filas en blanco y columnas vacías. A continuación se muestra un ejemplo de cómo utilizar el método CurrentRegion: ActiveSheet.Range("a1").CurrentRegion.Select

Este código 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(xlToRigh t)).Select o bien ActiveSheet.Range("a1:" & _ ActiveSheet.Range("a1").End(xlDown).End(xlToRigh t).Address).Select

En algunos casos, es posible que desee seleccionar las celdas entre A1 y C6. En este ejemplo, el método CurrentRegion no funcionará porque hay una línea en blanco en la fila 5. Los ejemplos siguientes seleccionarán todas las celdas: lastCol = ActiveSheet.Range("a1").End(xlToRight).Co lumn lastRow = ActiveSheet.Cells(65536, lastCol).End(xlU p).Row ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select o bien lastCol = ActiveSheet.Range("a1").End(xlToRight).Co lumn lastRow = ActiveSheet.Cells(65536, lastCol).End(xlU p).Row ActiveSheet.Range("a1:" & _ ActiveSheet.Cells(lastRow, lastCol).Address).Sel ect

22. Cómo 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 B1: 1 C1: 1 D1: 1 A2: 2 B2: 2 C2: 2 D2: 2 A3: 3 B3: 3 C3: 3 D3: 3 A4: B4: 4 C4: 4 D4: 4 A5: B5: 5 C5: 5 D5: R6: B6: C6: 6 D6: StartRange = "A1" EndRange = "C1" Set a = Range(StartRange, Range(StartRange).End(xlD own)) Set b = Range(EndRange, Range(EndRange).End(xlDown) ) Union(a,b).Select

Cuando este código se utilice con la tabla de ejemplo, se seleccionarán las celdas A1:A3 y C1:C6.

Page 8: Active Range

NOTAS SOBRE LOS EJEMPLOS

• Normalmente se puede omitir la propiedad ActiveSheet, ya que se considera implícita si una hoja concreta no tiene nombre. Por ejemplo, en lugar de escribir

• ActiveSheet.Range("D5").Select

puede utilizar:

Range("D5").Select

• Generalmente también se puede omitir la propiedad ActiveWorkbook . A menos que se nombre un libro concreto, el libro activo se considera implícito.

• Cuando use el método Application.Goto, si desea utilizar dos métodos Cells dentro del método 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"), también 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".