Excluir Cadenas Vacías del Array

Al crear programas usando VBA, a menudo necesitas manipular datos dentro de arrays. Este artículo explica cómo excluir cadenas vacías de un array. Te guiaremos paso a paso usando ejemplos de código específicos.

¿Qué es una cadena vacía?

En VBA, una cadena vacía se refiere a una cadena que no contiene caracteres. Puedes determinar si un elemento es una cadena vacía verificando si es igual a "".

Enfoque básico para excluir cadenas vacías

Aquí hay un enfoque común para excluir cadenas vacías de un array:

  1. Recorrer el array original y contar los elementos que no son cadenas vacías.
  2. Crear un nuevo array basado en el conteo de elementos no vacíos.
  3. Copiar elementos no vacíos al nuevo array.

Veamos estos pasos en detalle.

Ejemplo de código: Excluyendo cadenas vacías de un array

A continuación, se muestra un ejemplo de código que implementa los pasos anteriores usando VBA.

Public Sub RemoveEmptyStrings()
    Dim originalArray As Variant
    Dim cleanedArray As Variant
    Dim i As Long
    Dim count As Long

    '_Definir_el_array_original
    originalArray = Array("Apple", "", "Banana", "", "Cherry", "Date", "")

    '_Contar_elementos_no_vacíos
    count = 0
    For i = LBound(originalArray) To UBound(originalArray)
        If originalArray(i) <> "" Then
            count = count + 1
        End If
    Next i

    '_Redefinir_el_array_excluyendo_cadenas_vacías
    ReDim cleanedArray(0 To count - 1)

    '_Copiar_elementos_no_vacíos_del_array_original
    count = 0
    For i = LBound(originalArray) To UBound(originalArray)
        If originalArray(i) <> "" Then
            cleanedArray(count) = originalArray(i)
            count = count + 1
        End If
    Next i

    '_Mostrar_los_resultados
    For i = LBound(cleanedArray) To UBound(cleanedArray)
        Debug.Print cleanedArray(i)
    Next i
End Sub
Ten cuidado al redimensionar arrays

En VBA, cuando redimensionas un array usando ReDim, se reinicializa el array, lo que provoca que se pierdan los datos originales. Si deseas preservar los datos originales mientras redimensionas, usa ReDim Preserve. Sin embargo, en este ejemplo, como estamos creando un nuevo array, usar solo ReDim es suficiente.

Explicación del código

  1. Definir el array original:

    • originalArray contiene datos de muestra, incluyendo cadenas vacías.
  2. Contar elementos no vacíos:

    • El primer bucle For cuenta el número de elementos no vacíos. Este conteo se convierte en el tamaño del nuevo array.
  3. Crear un nuevo array:

    • La declaración ReDim se usa para definir un nuevo array cleanedArray que excluye cadenas vacías.
  4. Copiar elementos no vacíos:

    • El segundo bucle For copia los elementos no vacíos a cleanedArray.
  5. Mostrar los resultados:

    • Finalmente, el contenido de cleanedArray se muestra usando Debug.Print.

Resumen

Hemos introducido un método para excluir cadenas vacías de un array en VBA. El enfoque básico implica recorrer el array y copiar elementos no vacíos a un nuevo array. Usa este método en tus proyectos reales para limpiar eficientemente los datos del array.

#VBA #Array #Cadena Vacía #Manipulación de Datos