Macro VBA de Excel para quitar espacios

Lo que parece un detalle insignificante puede convertirse en un gran problema, Excel trata los caracteres de espacio como parte del dato y no los ignora al realizar cálculos, comparaciones o búsquedas.

En una celda los espacios se pueden encontrar al inicio de la celda, al final o entre palabra y palabra cuando hay más de uno.

Macro VBA de Excel para quitar espacios, rango A2:A6 con espacios en las celdas

Los problemas más comunes que generan los espacios mal ubicados o invisibles incluyen:

  • Rompen las funciones de búsqueda (BUSCARV, BUSCARX, COINCIDIR)
    Este es el inconveniente más frecuente. Para Excel, los textos «Cliente A» y «Cliente A » (con un espacio al final) son completamente diferentes. Cuando intentas cruzar bases de datos con BUSCARV, la fórmula arrojará un error #¡N/A! aunque visualmente ambos valores parezcan idénticos.

  • Fallan en fórmulas lógicas y de conteo (CONTAR.SI, SUMAR.SI, SI)
    Si aplicas una condición para sumar o contar celdas basadas en un texto específico, un espacio oculto hará que Excel no reconozca la coincidencia, ignorando registros que deberían ser contabilizados y alterando tus informes.

  • Errores en Filtros y Ordenar
    Al activar los filtros, Excel agrupa los valores idénticos. Si tienes celdas con espacios, Excel creará categorías separadas para un mismo concepto (por ejemplo, verás «Madrid» y «Madrid » como opciones distintas en el menú desplegable). Del mismo modo, el orden alfabético se descolocará.
Antes de analizar información o realizar búsquedas, limpia siempre los textos con ESPACIOS para evitar errores difíciles de detectar.

CREAR MACRO

  1. Pulsar el atajo de teclado Alt + F11. Mostrará el editor de Visual Basic.

  2. Barra de menú / Insertar / Módulo.

  3. Escribir el código siguiente:
  4. Sub QuitaEspacios ()
    ‘ Define una macro llamada QuitaEspacios.

    Dim celda As Range
    ‘ Crea la variable celda, que representará cada una de las celdas del rango seleccionado.

    For Each celda In Selection
    ‘ Selection hace referencia al rango que el usuario tiene seleccionado en ese momento.

    celda.Value = WorksheetFunction.Trim(celda.Value)
    ‘ La función VBA llama a la función de Excel TRIM (ESPACIOS en español).

    Next
    ‘ Pasa a la siguiente celda seleccionada y repite el proceso hasta terminar.

    End Sub
    ‘ Finaliza la macro.

  5. Guardar el libro con la extensión .xlsm (Libro de Excel habilitado para macros).
Editor de Visual Basic con la macro

Podemos mejorar la macro cambiando la línea:

celda.Value = WorksheetFunction.Trim(celda.Value)

por la siguiente:

celda.Value = Application.Trim(Application.Clean(celda.Value))

Que elimina espacios normales (código ASCII 32), pero no elimina algunos caracteres invisibles que suelen venir de páginas web, PDFs o sistemas ERP.

Donde:

– Clean elimina caracteres no imprimibles.
– Trim elimina los espacios sobrantes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.