VBA – Seleccionar Rango / Celdas
In this Article
- Seleccionar una sola celda con VBA
- Seleccionar un rango de celdas usando VBA
- Seleccionar un rango de celdas no contiguas utilizando VBA
- Seleccionar todas las celdas de una hoja de cálculo
- Seleccionar una Fila
- Seleccionar una Columna
- Seleccionar la última celda no vacía de una columna
- Seleccionar la última celda no vacia de una fila
- Seleccionar la región actual en VBA
- Seleccionar una celda que es relativa a otra celda
- Seleccionar un rango con nombre en Excel
- Seleccionar una celda en otra hoja de cálculo
- Manipulación del objeto de selección en VBA
- Usando la sentencia With…End With
VBA permite seleccionar una celda, rangos de celdas o todas las celdas de la hoja de cálculo. Puede manipular la celda o rango seleccionado utilizando el Objeto Selection.
Seleccionar una sola celda con VBA
Puede seleccionar una celda en una hoja de trabajo utilizando el método Select. El siguiente código seleccionará la celda A2 en la Hoja de Trabajo Activa:
Range("A2").Select
O
Cells(2, 1).Select
El resultado es:
Seleccionar un rango de celdas usando VBA
Puedes seleccionar un grupo de celdas en una hoja de trabajo utilizando el método Select y el objeto Range. El siguiente código seleccionará A1:C5:
Range("A1:C5").Select
Seleccionar un rango de celdas no contiguas utilizando VBA
Puedes seleccionar celdas o rangos que no estén contiguos, separando las celdas o rangos usando una coma en VBA. El siguiente código le permitirá seleccionar las celdas A1, C1 y E1:
Range("A1, C1, E1").Select
También puede seleccionar conjuntos de rangos no contiguos en VBA. El siguiente código seleccionará A1:A9 y B11:B18:
Range("A1:A9, B11:B18").Select
Seleccionar todas las celdas de una hoja de cálculo
Puedes seleccionar todas las celdas de una hoja de cálculo utilizando VBA. El siguiente código seleccionará todas las celdas de una hoja de trabajo.
Cells.Select
Seleccionar una Fila
Puedes seleccionar una fila determinada en una hoja de trabajo utilizando el objeto Row y el número de índice de la fila que quieres seleccionar. El siguiente código seleccionará la primera fila de la hoja de trabajo:
Rows(1).Select
Seleccionar una Columna
Puedes seleccionar una determinada columna en una hoja de trabajo utilizando el objeto Columns y el número de índice de la columna que quieres seleccionar. El siguiente código seleccionará la columna C en su hoja de trabajo:
Columns(3).Select
Seleccionar la última celda no vacía de una columna
Digamos que tienes datos en las celdas A1, A2, A3 y A4 y que quieres seleccionar la última celda que no está en blanco, que sería la celda A4 de la columna. Para ello puedes utilizar VBA y el método Range.End.
El Método Range.End puede tomar cuatro argumentos: xlToLeft, xlToRight, xlUp y xlDown.
El siguiente código seleccionará la última celda que no esté en blanco, que sería A4 en este caso, si A1 es la celda activa:
Range("A1").End(xlDown).Select
Seleccionar la última celda no vacia de una fila
Digamos que tienes datos en las celdas A1, B1, C1, D1 y E1 y que quieres seleccionar la última celda que no está en blanco, que sería la celda E1 de la fila. Para ello puedes utilizar VBA y el método Range.End.
El siguiente código seleccionará la última celda que no esté en blanco que sería E1 en este caso, si A1 es la celda activa:
Range("A1").End(xlToRight).Select
Seleccionar la región actual en VBA
Puedes utilizar la Propiedad CurrentRegion del objeto Range para seleccionar un rango rectangular de celdas en blanco y no en blanco alrededor de una celda de entrada específica. Si tienes datos en las celdas A1, B1 y C1, el siguiente código seleccionaría esta región alrededor de la celda A1:
Range("A1").CurrentRegion.Select
Entonces el rango A1:C1 sería seleccionado.
Seleccionar una celda que es relativa a otra celda
Puede utilizar la Propiedad Offset para seleccionar una celda que es relativa a otra celda. El siguiente código muestra cómo seleccionar la celda B2, que es una fila y una columna relativa a la celda A1:
Range("A1").Offset(1, 1).Select
Seleccionar un rango con nombre en Excel
Puedes seleccionar Rangos con nombre también. Digamos que has nombrado las celdas A1:A4 Fruta. Puedes usar el siguiente código para seleccionar este rango con nombre:
Range("Fruta").Select
Seleccionar una celda en otra hoja de cálculo
Para seleccionar una celda en otra hoja de cálculo, primero necesitas activar la hoja utilizando el método Worksheets.Activate. El siguiente código le permitirá seleccionar la celda A1, en la hoja denominada Hoja5:
Worksheets("Hoja5").Activate
Range("A1").Select
Manipulación del objeto de selección en VBA
Una vez que hayas seleccionado una celda o rango de celdas, puedes referirte al Objeto Selection para manipular estas celdas. El siguiente código selecciona las celdas A1:C1 y establece el tipo de fuente de estas celdas en Arial, el remarcado de la fuente en negrita, el estilo de la fuente en cursiva y el color de relleno en verde.
Sub FormatoSelection()
Range("A1:C1").Select
Selection.Font.Name = "Arial"
Selection.Font.Bold = True
Selection.Font.Italic = True
Selection.Interior.Color = vbGreen
End Sub
El resultado es:
Usando la sentencia With…End With
Podemos repetir el ejemplo anterior utilizando la sentencia With / End With para referirnos al objeto de selección sólo una vez. Esto ahorra escribir y generalmente hace que su código sea más fácil de leer.
Sub UsandoWithEndWithSelection()
Range("A1:C1").Select
With Selection
.Font.Name = "Arial"
.Font.Bold = True
.Font.Italic = True
.Interior.Color = vbGreen
End With
End Sub