VBA – Rango de Hoja de Trabajo
In this Article
Este tutorial mostrará cómo utilizar la propiedad Range de hoja de cálculo en VBA.
La Propiedad Worksheet.Range en VBA se utiliza para especificar una celda o grupo de celdas en Excel. Devuelve el objeto Worksheet.Range que representa la celda o celdas y tiene una variedad de métodos disponibles como Select, Font, Copy y PasteSpecial por nombrar algunos.
Sintaxis de Worksheet.Range
La sintaxis de la propiedad Worksheet.Range es simple:
Worksheets("Nombre_de_Hoja").Range(Celda1,[Celda2])
donde Celda1 es obligatoria, y [Celda2] es opcional.
Por lo tanto para referirnos a la celda A1 de la hoja 1 escribiríamos:
Worksheets("Hoja1").Range("A1")
Para referirnos a las celdas A1 a A4 (incluyendo las celdas A2 y A3) en la Hoja1, podemos referirnos a la primera celda, luego usar dos puntos, y referirnos a la última celda del rango.
Worksheets("Hoja1").Range("A1:A4")
Alternativamente, podemos utilizar el argumento [Celda2]. Esto también incluiría las celdas A2 y A3 en el rango de la hoja de cálculo.
Worksheets("Hoja1").Range("A1", "A4")
Si queremos referirnos a 2 celdas que no son contiguas, podemos poner una coma entre las 2 direcciones de celda.
Worksheets("Hoja1").Range("A1, C1")
Propiedades y Métodos de Worksheet.Range
Una vez que hemos utilizado la Propiedad Range del Objeto Worksheet para referirnos a nuestro Rango, podemos utilizar una variedad de propiedades y métodos que ahora están disponibles para el Objeto Range para controlar la apariencia y/o el comportamiento de las celdas utilizando VBA.
Para ver las Propiedades y Métodos del Objeto Range, podemos escribir un punto después de haber declarado nuestro rango.
Las propiedades se mostrarán con el pequeño icono de una ‘mano’, mientras que los métodos se mostrarán con el pequeño icono verde de un ‘bloque’.
Seleccionar Método
Uno de los métodos más comunes es el método de selección. Esto permite seleccionar celdas específicas o una celda en la hoja de cálculo de Excel.
Para seleccionar una sola celda en una hoja de cálculo, podemos hacer referencia a la celda en el objeto Worksheet.Range
Sub SeleccionarRango()
Worksheets("Hoja1").Range("B2").Select
End Sub
Para seleccionar un rango de celdas, podemos referirnos a un rango de celdas en el objeto Worksheet.RangeObject.
Sub SeleccionarRango()
Worksheets("Hoja1").Range("B2:C5").Select
End Sub
Para seleccionar 2 rangos no contiguos, podemos utilizar una coma entre 2 rangos.
Sub SeleccionarRango()
Worksheets("Hoja1").Range("B3:B5, C2:F2").Select
End Sub
Métodos Especiales Copiar y Pegar
Podemos copiar la información de celdas a otras celdas utilizando los métodos especiales Copiar y Pegar.
Sub WorksheetCopiarRango()
Worksheets("Hoja1").Range("B2:F5").Copy
Worksheets("Hoja1").Range("B8").PasteSpecial xlPasteAll
End Sub
Propiedad Font
Podemos utilizar la Propiedad Font para dar formato a las celdas. En el ejemplo siguiente, estamos utilizando la propiedad Negrita de la Propiedad Fuente para poner en negrita las celdas.
Sub CambiarFuente_a_Negrilla()
Worksheets("Hoja1").Range("B3:B5, C2:F2").Font.Bold = True
End Sub
Propiedad Borders
Podemos utilizar la propiedad Borders, y luego la propiedad LineStyle de la propiedad Borders para poner bordes alrededor de todas las celdas.
Sub ColocarBordes_a_Rango()
Worksheets("Hoja1").Range("B2:F5").Borders.LineStyle = xlContinuous
End Sub
Propiedad CurrentRegion
Podemos utilizar la propiedad Current Region del objeto Range, y luego el método Select del objeto CurrentRegion para seleccionar todas las celdas que están dentro de la región actual de la celda especificada.
CurrentRegion seleccionará todas las celdas que estén adyacentes a la celda especificada en el Rango, siempre y cuando esas celdas sean contiguas. No seleccionará ninguna celda después de una fila o columna en blanco.
Sub CurrentRegion()
Worksheets("Hoja1").Range("B2").CurrentRegion.Select
End Sub
Propiedad UsedRange
Si queremos seleccionar todas las celdas que están pobladas en una hoja de cálculo, necesitamos utilizar una Propiedad de la propia Hoja de Cálculo llamada UsedRange.
Sub Propiedad_UsedRange()
Worksheets("Hoja1").UsedRange.Select
End Sub