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.
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:
- Recorrer el array original y contar los elementos que no son cadenas vacías.
- Crear un nuevo array basado en el conteo de elementos no vacíos.
- 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
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
-
Definir el array original:
originalArraycontiene datos de muestra, incluyendo cadenas vacías.
-
Contar elementos no vacíos:
- El primer bucle
Forcuenta el número de elementos no vacíos. Este conteo se convierte en el tamaño del nuevo array.
- El primer bucle
-
Crear un nuevo array:
- La declaración
ReDimse usa para definir un nuevo arraycleanedArrayque excluye cadenas vacías.
- La declaración
-
Copiar elementos no vacíos:
- El segundo bucle
Forcopia los elementos no vacíos acleanedArray.
- El segundo bucle
-
Mostrar los resultados:
- Finalmente, el contenido de
cleanedArrayse muestra usandoDebug.Print.
- Finalmente, el contenido de
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.