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:
originalArray
contiene datos de muestra, incluyendo cadenas vacías.
-
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.
- El primer bucle
-
Crear un nuevo array:
- La declaración
ReDim
se usa para definir un nuevo arraycleanedArray
que excluye cadenas vacías.
- La declaración
-
Copiar elementos no vacíos:
- El segundo bucle
For
copia los elementos no vacíos acleanedArray
.
- El segundo bucle
-
Mostrar los resultados:
- Finalmente, el contenido de
cleanedArray
se 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.