



Al importar datos o al escribir, es habitual incluir espacios en blanco acompañando al texto, necesitando macros Excel para quitar espacios en diferentes posiciones.
Cuando el texto en una celda incluye espacios en blanco acompañando al texto, sí filtramos, ordeanamos o buscamos, por ejemplo, a "María" considera diferente si se muestra como " María" o "María ".

Con Excel abierto.
Pulsar la tecla Alt y mantener pulsada
Pulsar la tecla F11. Mostrará el editor de Visual Basic.
Ir a: Barra de Menú
Insertar
Módulo. Mostrará la ventana del módulo donde escribimos la macro deseada:
- ELIMINAR ESPACIOS A LA IZQUIERDA DEL TEXTO
Escribir el código de la macro:
Sub EspacioIzquierda()
Dim celda As Range
For Each celda In Selection
celda.Value = LTrim(celda.Value)
Next
End Sub
- LTrim. Elimina todos los espacios de texto a su izquierda.
Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.
Seleccionar el rango deseado
Ejecutar la macro y verificar como elimina los espacios al inicio del texto.

- ELIMINAR ESPACIOS A LA DERECHA DEL TEXTO
Escribir el código de la macro:
Sub EspacioDerecha()
Dim celda As Range
For Each celda In Selection
celda.Value = RTrim(celda.Value)
Next
End Sub
- RTrim. Elimina todos los espacios de texto a su derecha.
Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.
Seleccionar el rango deseado
Ejecutar la macro y verificar como elimina los espacios al final del texto.

- ELIMINAR ESPACIOS A LA IZQUIERDA Y DERECHA DEL TEXTO
Escribir el código de la macro:
Sub EspacioIzqDer()
Dim celda As Range
For Each celda In Selection
celda.Value = Trim(celda.Value)
Next
End Sub
- Trim. Elimina todos los espacios del texto, excepto los incluidos entre palabras.
Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.
Seleccionar el rango deseado
Ejecutar la macro y verificar como elimina los espacios al inicio y al final del texto.

- ELIMINAR ESPACIOS A LA IZQUIERDA, DERECHA Y ENTRE PALABRAS
Escribir el código de la macro:
Sub EspacioTodos()
Dim celda As Range
For Each celda In Selection
celda.Value = WorksheetFunction.Trim(celda.Value)
Next
End Sub
Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.
Seleccionar el rango deseado
Ejecutar la macro y verificar como elimina los espacios al inicio, al final del texto y entre palabras (excepto una).

- CARACTER 160
El carácter 160 en Excel se muestra como un espacio en blanco pero no lo es, ya que el espacio en blanco se corresponde con el carácter 32.
Escribir el código de la macro:
Sub EspacioCaracter160()
Dim Cell As Range, Texto As Variant
For Each Cell In Selection
Texto = Cell.Value
Texto = WorksheetFunction.Substitute(Texto, Chr(160), "")
Cell.Value = Texto
Next Cell
End Sub
Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.
Seleccionar el rango deseado
Ejecutar la macro y verificar como elimina el carácter 160, donde se encuentre insertado.

- Consultar:
Muy bueno
Gracias por las recomendaciones, son excelentes. Me ayudaron muchísimo a limpiar una base con muchos nombres!
excelente aporte, me ayuste muchisisisimo
Me funciona bien pero cuando quiero hacer eso en un archivo que continene más de 5000 registros, me sale un error, alguien sabe como hacer el siguiente código para muchos datos? ... Por fa... gracias
Sub EspacioTodos()
Dim celda As Range
For Each celda In Selection
celda.Value = WorksheetFunction.Trim(celda.Value)
Next
End Sub
Hola Limar,
La macro busca en cada celda y requiere recursos que posiblemente el equipo no dispone. Intenta aplicar la macro sobre un rango, las filas o columnas deseadas.
Saludos.
Siento que te amo por el carácter 160 jajajajaj mil gracias
porque si aplique la macro y le asigne un boton no me funciona?¿¿ podria cer la vercion o el idioma de mi ecxel?
Hola Morgan,
Asignar la macro aun botón no depende de la versión y tiene que funcionar siempre que el botón sea de formulario. Revisa la seguridad de las macros.
Saludos.
Puede que el error sea que como la macro sobre sobre una selleción, una de esas al presionar sobre un botón, quita la selección. será posible?
Hola Leonardo,
Es posible pero mediante código.
Saludos.
Hola si necesito que no los elimine sino que me indique si tiene o no tiene espacios en blanco a la derecha o izquierda con que función se pueden encontrar.
Hola John,
Aplica la fórmula: =A1<>ESPACIOS(A1)
También puedes aplicarla en un formato condicional.
Saludos.
Hola,
¿Cómo puedo hacer el código para que la macro busque automaticamente todas las celdas de un rango, y no las tenga que seleccionar?
Hola Sandra,
Puedes aplicar el código:
Sub borra()
Dim celdas As Range
For Each celdas In Range("A1:D10")
If celdas.Text <> "" Then celdas = Application.Trim(celdas)
Next
End Sub
Saludos.
Excelente me sirvio de mucha ayuda
MIL GRACIAS!!! No entendía porque no funcionaba el "text to columns" ni nada que intenté
Todas funcionan bien, pero, no así la eliminación de los espacios intermedios. faltara algo a la instrucción?
gracias por tu gran ayuda
Hola Wfredo,
La macro EspacioTodos() elimina los caracteres de espacio entre palabras excepto 1.
Saludos.
La macro para elimininar el caracter 160 me funciona bien pero solo en algunos casos, Si los datos son texto no tengo ningún problema, pero si son números me altera la posición de los decimales. El problema lo tengo porque en la misma columna hay datos que son números y otros textos.
Hola Emilio,
El siguiente código anida los caracteres no imprimibles:
Sub Eliminar()
'Paso 1: Quitar saltos de línea
ActiveSheet.UsedRange.Replace What:=Chr(10), Replacement:=""
'Paso 2: Quitar retornos de carro
ActiveSheet.UsedRange.Replace What:=Chr(13), Replacement:=""
'Paso 3: Quitar los espacios de no separación
ActiveSheet.UsedRange.Replace What:=Chr(160), Replacement:=""
'Paso 4: Quitar los espacios
ActiveSheet.UsedRange.Replace What:=Chr(60), Replacement:=""
Dim celda As Range
For Each celda In Selection
celda.Value = WorksheetFunction.Trim(celda.Value)
Next
End Sub
Saludos.
Hola, tengo una duda. Dices "Guardar el libro con la extensión *.xlsm. Libro habilitado para macros"
Soy totalmente novato, perdona. Lo que guardas es la hoja de excel sobre la que quieres trabajar, entiendo. Yo no tengo esa extensión (*.xlsm.). Tengo Microsoft excel 2002..
Hola Luis,
En guardar como / Tipo / Libro habilitado para macros.
Saludos.