VBA – Función Cells – Cells, Worksheet.Cells, y Range.Cells

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on diciembre 16, 2022

Este artículo demostrará cómo utilizar la Función Cells de VBA.

La Función Celdas de VBA le permite hacer dos cosas:

  1. Hacer referencia a todas las celdas de una hoja de cálculo
  2. Hacer referencia a una celda específica

Es similar al Objeto Range de VBA.

Sintaxis de la Función Cells de VBA

La sintaxis tradicional de la función Celdas de VBA es:

Sintaxis Función Cells

Este tipo de sintaxis se denomina sintaxis R1C1 en contraposición a la sintaxis A1 de una letra de columna y luego un número de fila que se utiliza cuando se utiliza el Objeto Rango en Excel VBA.

Por lo tanto, para seleccionar la celda C3 podemos escribir el siguiente código:

Cells(3, 4).Select

esto moverá el puntero de Excel a la celda C4 en su hoja de cálculo.

Si deseamos utilizar la función cells para rellenar una celda específica con algún texto, y luego formatear la celda, podemos escribir algún código como el del ejemplo siguiente:

Sub RellenarCeldas()
   Cells(2, 2) = "Análisis de Ventas para 2022"
   Cells(2, 2).Font.Bold = True
   Cells(2, 2).Font.Name = "Arial"
   Cells(2, 2).Font.Size = 12
End Sub

Esto rellenará la celda B2 con texto y luego formateará la celda.

Worksheet.Cells

Si deseamos seleccionar toda la hoja utilizando la función cells, podemos escribir lo siguiente:

Worksheets("Hoja1").Cells.Select

Esto seleccionará todas las celdas de la Hoja1 de la misma forma que lo haría pulsando CTRL + A en el teclado.

Range.Cells

También podemos utilizar la función celdas para referirnos a una celda concreta dentro de un rango de celdas.

Range("A5:B10").Cells(2, 2).Select

Esto se referirá a la celda que tiene la dirección B6 en el rango original (A5:B10) ya que B6 está en la segunda fila y segunda columna de ese rango.

Recorriendo un Rango con la Función Cells

Ahora que entendemos la Función Celdas, podemos utilizarla para realizar algunas tareas en Bucles VBA.

Por ejemplo, si queremos formatear un rango de celdas dependiendo de su valor, podemos recorrer el rango usando la función celdas.

Sub FormatearCeldas()
   Dim x As Integer
   For x = 1 To 10
      If Cells(x, 1) > 5 Then
         Cells(x, 1).Interior.Color = vbRed
      End If
   Next x
End Sub

Este código comenzará en la celda A1 y recorrerá la celda A10, cambiando el color de fondo a rojo si el valor de la celda es mayor que 5. Si deseamos llevar esto a otro nivel, para recorrer columnas además de filas, podemos añadir otro bucle al código para aumentar las columnas que mira el bucle.

Sub FormatearCeldas()
   Dim x As Integer
   Dim y As Integer
   For x = 1 To 10
      For y = 1 To 5
         If Cells(x, y) > 5 Then
            Cells(x, y).Interior.Color = vbRed
         End If
      Next y
   Next x
End Sub

Ahora el bucle comenzará en la celda A5 pero continuará hasta la celda E10.

También podemos utilizar la función Cells para recorrer un rango específico de celdas

Sub RecorrerRangoEspecifico()
   Dim rng As Range
   Dim x As Integer
   Dim y As Integer
   Set rng = Range("B2:D8")
   For x = 1 To 7
      For y = 1 To 3
         If rng.Cells(x, y) > 5 Then
            rng.Cells(x, y).Interior.Color = vbRed
         End If
      Next y
   Next x
End Sub

Este bucle sólo buscaría dentro del rango B2:D8, y luego recorrería las filas y columnas de ese rango en particular. Recuerda que cuando el rango se suministra a la función Cells, ésta sólo buscará dentro de ese rango y no en toda la hoja de cálculo.

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples