VBA para cada celda del rango en Excel (3 métodos)

  • Compartir Este
Hugh West

En las grandes bases de datos, pasas la mayor parte del tiempo lidiando con rangos y celdas. A veces tienes que repetir la misma acción en grandes rangos o en un gran número de celdas. Esto al mismo tiempo acaba con tu tiempo y reduce tu eficiencia. La solución inteligente a este problema es construir una Código de programación VBA que se ejecutará a través de cada celda en el rango y realizar la misma acción dirigida por usted. Hoy en este artículo, vamos a discutir cómo hacer VBA para cada celda en el rango en Excel.

Descargar el cuaderno de prácticas

Descárgate este cuaderno de prácticas para ejercitar la tarea mientras lees este artículo.

Código VBA para cada celda de un rango en Excel.xlsx

3 formas adecuadas para aplicar VBA para cada celda en el rango en Excel

Utilizando un código VBA puede realizar la misma fórmula a cada celda de un rango o una columna o una fila. En esta sección, vamos a ir a través de todas las secciones.

1. Aplicar VBA para cada celda del rango

Considere una situación en la que tiene que aplicar el mismo código VBA para cada celda de un rango determinado ( B3:F12 Para ello, crearemos un código VBA con las instrucciones siguientes

Primer paso:

  • En primer lugar, vamos a insertar un botón de comando para simplificar nuestro trabajo. Vaya a su Ficha Desarrollador seleccione Inserte y haz clic en el botón de comando para obtener uno.

  • Ya tenemos nuestro botón de mando.

  • Haga clic con el botón derecho del ratón en el botón de comando para abrir las opciones. Seleccione y haga clic en Propiedades para modificar algunas opciones.

  • Cambia el título del botón de comando. Aquí cambiamos el nombre a, " Haga clic aquí ".

Segundo paso:

  • Ahora haga doble clic en el botón de comando para abrir el VBA Módulo Aquí escribiremos nuestro código VBA para la tarea.

  • En primer lugar, declararemos dos variables. Llamamos a los objetos de rango CL y Rng Puedes ponerles el nombre que quieras.
 Dim CL As Range Dim Rng As Range 

  • Asigna un rango específico mediante este comando,

Set Rng = Hojas de cálculo("VBA1").Rango("B3:F12")

  • Aquí VBA1 es el nombre de nuestra hoja de cálculo y B3:F12 es nuestra gama definida.

  • Ahora vamos a utilizar el código para realizar a través de cada celda en el rango. El código es,
 For Each CL In Rng CL.Value = 100 Next CL 
  • Valor = 100 se refiere a que devolverá 100 para cada celda del rango dado.

  • Así que nuestro código final se convierte en,
 Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng CL.Value = 100 Next CL End Sub 
  • Vaya a su hoja de cálculo principal y haga clic en el botón de comando para ejecutar VBA para cada celda del rango.

Tercer paso:

  • Al igual que los valores numéricos, también podemos poner valores de texto para cada celda del rango. En ese caso, ve a la ventana de VBA, y en lugar de 100, inserta el valor de texto que quieras recorrer. La línea cambiada es
 CL.Value = "ExcelWIKI" 

  • Haga clic en el botón de comando y el código VBA devolverá este valor de texto para cada celda del rango.

Paso 4:

  • En este paso, profundizaremos un poco más. Digamos que queremos resaltar cada celda en blanco de nuestro rango.

  • Para ello, añade una nueva condición a tu código existente. La nueva fórmula es,
 If CL.Value = " " Then CL.Interior.ColorIndex = 3 End If 
  • Este nuevo código resaltará la celda en blanco con color rojo. Así que el código completo es,
 Private Sub CommandButton1_Click () Dim CL As Range Dim Rng As Range Set Rng = Worksheets("VBA1").Range("B3:F12") For Each CL In Rng If CL.Value = " " Then CL.Interior.ColorIndex = 3 End If Next CL End Sub 

  • Obtenga el resultado pulsando el botón de comando.

Lecturas similares:

  • Cómo Utilizar el Objeto Rango de VBA en Excel (5 Propiedades)
  • Usar Desplazamiento de Rango VBA (11 Formas)
  • Cómo contar texto en Excel (7 trucos fáciles)

2. Insertar código VBA para cada celda de una columna de un rango

También podemos ejecutar código VBA para cada celda de una columna. Supongamos que tenemos una columna que contiene números y tenemos que colorear los valores inferiores a 10. Construiremos un código VBA para ejecutar cada celda de la columna.

Primer paso:

  • Crea un botón de comando siguiendo las instrucciones que hemos comentado.

Segundo paso:

  • Haga doble clic en el botón de comando para abrir la ventana VBA.
  • Declararemos una variable llamada " c "Utilizamos la variable de tipo Long porque las variables Long tienen una capacidad mayor que las variables Integer.
 Dim c As Long 

  • A continuación, añada la línea de código que cambia el color de fuente de todas las celdas de nuestra columna a negro.
 Columnas(1).Fuente.Color = vbNegro 

  • Inserte el bucle para este código.
 For c = 1 To Rows.Count Next c 

  • En este paso, introduciremos una condición para colorear los valores que sean inferiores al valor de la celda C4 (10). Introduce este código para hacerlo.
 If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If 

  • Así que el código final es,
 Private Sub CommandButton1_Click () Dim c As Long Columns(1).Font.Color = vbBlack For c = 1 To Rows.Count If Cells(c, 1).Value <Range("C4").Value And Not IsEmpty(Cells(c, 1).Value) Then Cells(c, 1).Font.Color = vbRed End If Next c End Sub 
  • El VBA se ejecutará y mostrará los resultados cuando haga clic en el botón de comando.

3. Escribir un código VBA para cada celda de una fila de un rango

También podemos ejecutar un código VBA para cada celda de una fila. En la fila dada, necesitamos realizar la misma acción en cada celda de la fila.

Paso 1:

  • Añade un botón de comando y cambia su nombre a " Haga clic aquí "

  • Haga doble clic en el botón para abrir la ventana VBA. Escriba el código VBA que se proporciona a continuación.
 Private Sub CommandButton1_Click () Dim r As Range Dim MyString As String 'Para cada celda de una fila, y aplica un relleno de color amarillo For Each r In Range("B3:F3").Rows r.Interior.ColorIndex = 6 Next End Sub 
  • El código recorrerá cada celda de la fila y aplicará un relleno de color amarillo a cada celda.

  • Haga clic en el botón y nuestro resultado está aquí.

Notas rápidas

👉 Si no tienes visible tu ficha de desarrollador, puedes activarla con esta instrucción.

Barra de herramientas de acceso rápido personalizada → Más comandos → Personalizar cinta → Desarrollador → Aceptar.

Conclusión

Hemos repasado tres enfoques diferentes para ejecutar VBA para cada celda de un rango. Le invitamos a comentar si tiene alguna pregunta o duda. También puede consultar nuestros otros artículos relacionados con las tareas de Excel.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.