Excel VBA: Sentencia If Basada en el Valor de una Celda (2 Ejemplos Prácticos)

  • Compartir Este
Hugh West

En este artículo, te mostraré cómo puedes utilizar un Si la declaración en VBA en Excel a partir de un valor de celda.

Excel VBA: Sentencia If Basada en el Valor de la Celda (Vista Rápida)

 Sub If_Statement_Based_On_a_Single_Cell() If Range("C3").Value>= 40 Then Range("D3").Value = "Passed" Else Range("D3").Value = "Failed" End If End Sub 

Descargar el cuaderno de prácticas

Descárgate este cuaderno de prácticas para ejercitarte mientras lees este artículo.

Sentencia If Basada en el Valor de la Celda.xlsm

Declaración If basada en el valor de la celda en Excel VBA

Aquí tenemos una hoja de cálculo que contiene el nombres y marcas de algunos alumnos de una escuela en un examen.

Nuestro objetivo es aprender a utilizar el Si la declaración en Excel VBA basado en un valor de celda de este conjunto de datos.

1. Sentencia If Basada en el Valor de una Celda en Excel VBA

En primer lugar, aprenderemos a utilizar una sentencia If basada en el valor de una única celda.

Por ejemplo, intentemos ver si Natalia Austin aprobó o no el examen, es decir, si la nota de la celda C3 es mayor que 40 o no.

Columna D contiene el resultado de los alumnos. Es decir, si la celda C3 contiene una marca superior a 40, la celda D3 contendrá "Aprobado" De lo contrario, contendrá "Fracasado" .

Utilizaremos un VBA Gama para crear este objeto Si la declaración en función del valor de la celda.

En VBA código para esto será:

⧭ Código VBA:

 Sub If_Statement_Based_On_a_Single_Cell() If Range("C3").Value>= 40 Then Range("D3").Value = "Passed" Else Range("D3").Value = "Failed" End If End Sub 

⧭ Salida:

Ejecute el código de la Ejecutar Sub / UserForm de la VBA barra de herramientas.

Hará que la célula D3 contienen "Fracasado" como la marca de la casilla C3 es inferior a 40 ( 32 ).

2. Sentencia If Basada en Valores de un Rango de Celdas en Excel VBA

También puede utilizar la función Declaración basándose en los valores de un rango de celdas en VBA Puede utilizar un bucle for para este fin.

Por ejemplo, aquí podemos averiguar el resultado de todos los alumnos con un solo código. Vamos a iterar a través de a bucle for que comprobará todas las celdas del rango C3:C12 y devuelve el resultado correspondiente, "Aprobado" o "Fracasado" .

En VBA código para esto será:

⧭ Código VBA:

 Sub If_Statement_Based_On_a_Range_of_Cells() For i = 1 To Range("C3:C12").Rows.Count If Range("C3:C12").Cells(i, 1).Value>= 40 Then Range("D3:D12").Cells(i, 1).Value = "Passed" Else Range("D3:D12").Cells(i, 1).Value = "Failed" End If Next i End Sub 

⧭ Salida:

Ejecute el código de la Ejecutar Sub / UserForm de la VBA barra de herramientas. Devolverá "Aprobado" para las marcas superiores a 40 y "Suspenso" para los que no alcanzan el n 40 .

Cosas para recordar

Aquí he mostrado un Declaración Pero si lo desea, puede utilizar varias condiciones dentro de una condición Si la declaración .

Si utiliza O escriba varias condiciones, únalas con un O .

Y si utiliza Y escriba varias condiciones, únalas con un Y .

Por ejemplo, para comprobar si la marca de la celda B3 es mayor que 40 y menos de 50 o no, usar:

 If (Rango("C3").Valor> 40 Or Rango("C3").Valor <50) Then 

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.