¿Cómo usar la función IsEmpty en VBA?

IsEmpty es una función integrada en VBA (Visual Basic for Applications), que se utiliza para determinar si una variable no ha sido inicializada o está explícitamente vacía. Devuelve True si la variable está vacía; de lo contrario, devuelve False.

Sintaxis básica

VBA
IsEmpty(expression)
  • expression: La expresión (generalmente una variable) que deseas verificar.

Ejemplo 1

VBA

Sub CheckIfEmpty()
    Dim myVar As Variant
    
    ' No se ha asignado un valor a myVar, por lo que IsEmpty debe devolver True
    If IsEmpty(myVar) Then
        MsgBox "La variable está vacía."
    Else
        MsgBox "La variable NO está vacía."
    End If
End Sub

Ejemplo 2

VBA

Sub CheckIfCellIsEmpty()
    Dim cellValue As Variant
    cellValue = Range("A1").Value
    
    ' Comprobar si la celda A1 está vacía
    If IsEmpty(cellValue) Then
        MsgBox "La celda A1 está vacía."
    Else
        MsgBox "La celda A1 NO está vacía."
    End If
End Sub

Nota que IsEmpty solo devuelve True si la variable no ha sido inicializada. Si la variable se ha inicializado con un valor, aunque este valor sea un string vacío («») o un espacio en blanco (» «), IsEmpty devolverá False. Por ejemplo:

Ejemplo 3

VBA

Sub CheckIfEmptyString()
    Dim myString As String
    myString = ""  ' Esto es un string vacío, no una variable realmente "Empty"
    
    If IsEmpty(myString) Then
        MsgBox "La variable está vacía."
    Else
        MsgBox "La variable NO está vacía. Es un string vacío."
    End If
End Sub

En este último caso, la ejecución del código mostrará «La variable NO está vacía. Es un string vacío.», ya que aunque myString no contiene caracteres, está inicializada con un string vacío y por lo tanto no está «vacía» en el sentido que IsEmpty evalúa.

Para concluir, utiliza IsEmpty para evaluar variables no inicializadas, no para verificar si una string tiene longitud cero o si una celda de Excel parece estar vacía pero contiene en realidad una fórmula que devuelve un string vacío. En estos casos, podrías usar Len(myString) = 0 o Range(«A1»).Value = «» respectivamente.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

Deja un comentario