Diferentes formas de verificar si una celda está vacía en Microsoft Excel VBA

Bilal Shahid 21 junio 2023
  1. Formas de comprobar si una celda está vacía
  2. Método 1: la función IsEmpty
  3. Método 2: Comparar con vbNullString
  4. Método 3: comparar con una cadena vacía
  5. Método 4: La función Len
  6. Método 5: Las funciones Count y Counta
  7. Método 6: la función IsNull
  8. Conclusión
Diferentes formas de verificar si una celda está vacía en Microsoft Excel VBA

VBA es un lenguaje de programación para aplicaciones de Microsoft Excel que brinda a los usuarios varias funciones y características. En este artículo, aprenderemos cómo verificar si una celda está vacía.

Formas de comprobar si una celda está vacía

En MS Excel, una celda es un bloque identificado como la intersección de una fila y una columna, que tiene el número de fila y la letra de la columna como identificador. Estas celdas pueden contener varios tipos de datos.

Sin embargo, también podemos tener una celda vacía, que se refiere a una que no contiene datos.

En MS Excel, puede haber muchas situaciones en las que tenemos que verificar si la celda contiene datos o no. Para ayudarnos a hacer esto, MS Excel VBA proporciona múltiples métodos para verificar si una celda está vacía.

Estos métodos se explican en detalle a continuación, junto con ejemplos de código VBA para ayudarlo a comprenderlos mejor.

Método 1: la función IsEmpty

La función IsEmpty en Excel VBA es una función integrada que devuelve un valor booleano. Esta función también se puede usar junto con las celdas para verificar si una variable no está inicializada.

Tiene la siguiente sintaxis:

IsEmpty(value)

Aquí, valor es la celda o variable que desea verificar.

Si la celda está vacía o la variable no está inicializada, esta función devuelve True. En caso contrario, devuelve False.

Nota: si desea verificar si un valor está en blanco en una celda de la hoja de trabajo, también puede usar la función de hoja de trabajo IsBlank(value) en la barra de fórmulas. Sin embargo, no puede utilizar la función IsBlank en VBA como alternativa a la función IsEmpty.

Usando el código a continuación, probemos la función IsEmpty en algunas celdas simples. También usaremos las mismas dos celdas en los siguientes ejemplos.

La celda no está vacía.

Sub ExampleIsEmpty()

If IsEmpty(Range("A1")) = True Then
MsgBox "Cell A1 is empty"
Else
MsgBox "Cell A1 is not empty"
End If

If IsEmpty(Range("A2").Value) = True Then
MsgBox "Cell A2 is empty"
Else
MsgBox "Cell A2 is not empty"
End If

End Sub

Ejecutar este código dará el siguiente resultado en los cuadros de mensaje:

la celda A1 no está vacía

la celda A2 está vacía

Fíjate cómo hemos usado tanto IsEmpty(Range("A1")) como IsEmpty(Range("A2").Value). Ambos funcionarán bien.

Método 2: Comparar con vbNullString

Si queremos comprobar si una celda no contiene ningún valor, también podemos compararlo con vbNullString. vbNullString es una constante que contiene el valor Null para cadenas.

Si la comparación muestra que el valor en la celda es igual a vbNullString, podemos concluir que la celda está vacía.

El siguiente código demuestra cómo podemos usar la constante vbNullString para buscar celdas vacías.

Sub ExamplevbNullString()

If Range("A1").Value = vbNullString Then
MsgBox "Cell A1 is empty"
Else
MsgBox "Cell A1 is not empty"
End If

If Range("A2").Value = vbNullString Then
MsgBox "Cell A2 is empty"
Else
MsgBox "Cell A2 is not empty"
End If

End Sub

Nuevamente, podemos ver que la salida muestra los siguientes cuadros de mensaje:

la celda A1 no está vacía

la celda A2 está vacía

Nota: Este método no funcionará cuando la celda no tenga un valor pero contenga un error como #N/A!. Por lo tanto, es más seguro utilizar la función IsEmpty.

Método 3: comparar con una cadena vacía

Un método similar es comparar el valor presente en la celda con una cadena vacía, que se define en el código como "". Si la comparación devuelve True, la celda está vacía y, de lo contrario, no está vacía.

Aquí hay un ejemplo de lo que usa la comparación con "" para determinar si la celda está vacía.

Sub ExampleEmptyString()

If Range("A1").Value = "" Then
MsgBox "Cell A1 is empty"
Else
MsgBox "Cell A1 is not empty"
End If

If Range("A2").Value = "" Then
MsgBox "Cell A2 is empty"
Else
MsgBox "Cell A2 is not empty"
End If

End Sub

La salida será la siguiente:

la celda A1 no está vacía

la celda A2 está vacía

Método 4: La función Len

Para verificar si una celda está vacía, también podemos calcular la longitud de los datos allí y comparar si es igual a cero.

Si la longitud es igual a cero, podemos decir que la celda está vacía, lo que implica que no contiene datos. De lo contrario, decimos que la celda no está vacía.

Usamos la función Len incorporada de VBA para calcular la longitud de los datos. Tiene la siguiente sintaxis:

Len(value)

Aquí, valor es el valor de la celda que desea verificar.

Veamos un código de ejemplo que usa la función Len para determinar si una celda está vacía.

Sub ExampleLen()

If Len(Range("A1").Value) = 0 Then
MsgBox "Cell A1 is empty"
Else
MsgBox "Cell A1 is not empty"
End If

If Len(Range("A2").Value) = 0 Then
MsgBox "Cell A2 is empty"
Else
MsgBox "Cell A2 is not empty"
End If

End Sub

Como era de esperar, obtenemos el siguiente resultado:

la celda A1 no está vacía

la celda A2 está vacía

Método 5: Las funciones Count y Counta

Las funciones Count y Counta son funciones de hoja de trabajo en VBA que devuelven el número de celdas no vacías en el rango dado. La diferencia entre ellos es que la función Count solo cuenta valores numéricos, mientras que la función Counta puede trabajar con cualquier dato.

Podemos utilizar estas funciones para verificar si una celda determinada está vacía. Si el recuento se devuelve como 0, la celda está vacía ya que la función cuenta solo las celdas que no están vacías.

Es mejor usar la función Counta en lugar de la función Count porque la función Count considerará los datos de texto o de tipo cadena como en blanco.

El siguiente código demuestra el uso de la función Counta para comprobar si hay celdas vacías.

Sub ExampleCounta()

If Application.WorksheetFunction.CountA(Range("A1")) = 0 Then
MsgBox "Cell A1 is empty"
Else
MsgBox "Cell A1 is not empty"
End If

If Application.WorksheetFunction.CountA(Range("A2")) = 0 Then
MsgBox "Cell A2 is empty"
Else
MsgBox "Cell A2 is not empty"
End If

End Sub

La salida es la esperada.

la celda A1 no está vacía

la celda A2 está vacía

Método 6: la función IsNull

Otro método para verificar si una celda contiene un valor Nulo es usar la función IsNull. Esta también es una función integrada en VBA que devuelve un valor booleano: True si el valor es igual a Nulo y False en caso contrario.

Si esta función devuelve True para el valor de una celda, podemos concluir que la celda está vacía.

La sintaxis de la función IsNull es la siguiente:

IsNull(value)

Aquí, valor es el valor de la celda que desea verificar.

Sin embargo, un punto a tener en cuenta es que el valor Nulo no está inherentemente asignado a una celda. Por lo tanto, en muchos casos, este método no funcionará y dirá que una celda no está vacía incluso cuando está en blanco porque su valor no es igual a NULL.

Conclusión

En este artículo, hemos explicado seis métodos para verificar si una celda está vacía en Excel VBA:

  1. La función IsEmpty
  2. Comparación con vbNullString
  3. Comparación con una cadena vacía
  4. La función Len
  5. Las funciones Count y Counta
  6. La función EsNulo

Esperamos que hayas podido comprender estos conceptos. ¡Seguir aprendiendo!

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub

Artículo relacionado - VBA Cell