Tabla de contenido
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.xlsmDeclaració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