Saltar al contenido principal

¿Cómo insertar espacios antes de las letras mayúsculas en Excel?

Supongamos que tiene una lista de cadenas de texto en la que todos los espacios entre las palabras se eliminan accidentalmente, así: Insertar filas en blanco entre datos, y ahora desea agregar los espacios antes de cada letra con letras mayúsculas para separar las palabras como Insertar filas en blanco entre datos. ¿Cómo podría agregar espacios delante de las letras mayúsculas rápidamente en lugar de escribir espacios uno por uno en Excel?


Inserte espacios antes de las letras mayúsculas con la función definida por el usuario

Desafortunadamente, no hay una forma directa de agregar espacios antes de las letras mayúsculas en Excel, pero puede crear una función definida por el usuario para resolver esta tarea.

1. Active su hoja de trabajo que contiene las cadenas de texto a las que desea agregar espacios.

2. Mantenga pulsado el ALT + F11 teclas para abrir el Ventana de Microsoft Visual Basic para aplicaciones.

3. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana del módulo.

Código de VBA: inserte espacios antes de las letras mayúsculas

Function AddSpaces(pValue As String) As String
'Update 20140723
Dim xOut As String
xOut = VBA.Left(pValue, 1)
For i = 2 To VBA.Len(pValue)
   xAsc = VBA.Asc(VBA.Mid(pValue, i, 1))
   If xAsc >= 65 And xAsc <= 90 Then
      xOut = xOut & " " & VBA.Mid(pValue, i, 1)
   Else
      xOut = xOut & VBA.Mid(pValue, i, 1)
   End If
Next
AddSpaces = xOut
End Function

4. Luego guarde y cierre este código, regrese a la hoja de trabajo e ingrese esta fórmula = agrega espacios (A1) en una celda en blanco además de sus datos, vea la captura de pantalla:
doc-agregar-espacios-antes-mayúsculas-1

5. Y luego arrastre el controlador de relleno sobre el rango que desea que contenga esta fórmula, obtendrá los espacios que se insertan antes de cada letra mayúscula.
doc-agregar-espacios-antes-mayúsculas-1

Elimine fácilmente los espacios iniciales / finales / adicionales en las celdas

Kutools para Excel Eliminar espacios La utilidad permite a los usuarios de Excel eliminar fácilmente todo el espacio inicial, el espacio final, los espacios adicionales o todos los espacios de las celdas seleccionadas rápidamente.


anuncio quitar espacio 1

Inserte espacios antes de las letras mayúsculas con código VBA

Aquí hay otro código VBA que puede hacerte un favor, haz lo siguiente:

1. Mantenga pulsado el ALT + F11 teclas para abrir el Ventana de Microsoft Visual Basic para aplicaciones.

2. Hacer clic recuadro > Móduloy pegue el siguiente código en el Ventana del módulo.

Código de VBA: inserte espacios antes de las letras mayúsculas

Sub AddSpacesRange()
'Update 20140723
Dim Rng As Range
Dim WorkRng As Range
Dim xOut As String
Dim xValue As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
For Each Rng In WorkRng
    xValue = Rng.Value
    xOut = VBA.Left(xValue, 1)
    For i = 2 To VBA.Len(xValue)
       xAsc = VBA.Asc(VBA.Mid(xValue, i, 1))
       If xAsc >= 65 And xAsc <= 90 Then
          xOut = xOut & " " & VBA.Mid(xValue, i, 1)
       Else
          xOut = xOut & VBA.Mid(xValue, i, 1)
       End If
    Next
    Rng.Value = xOut
Next
Application.ScreenUpdating = True
End Sub

3. Entonces presione F5 para ejecutar este código, aparecerá un cuadro emergente que le permitirá seleccionar un rango de datos que desee utilizar.
doc-agregar-espacios-antes-mayúsculas-1

4. Y luego haz clic OK para cerrar este cuadro de aviso, los espacios se han insertado antes de las letras mayúsculas a la vez, vea la captura de pantalla:
doc-agregar-espacios-antes-mayúsculas-1


Inserte un espacio antes de cada letra mayúscula con Kutools para Excel

Kutools para Excel Añadir texto La utilidad puede ayudarlo a omitir las macros de VBA e insertar espacio antes de cada letra mayúscula fácilmente en Excel.

Kutools for Excel - Equipado con más de 300 herramientas esenciales para Excel. ¡Disfrute de una prueba GRATUITA de 30 días con todas las funciones sin necesidad de tarjeta de crédito! ¡Descargar ahora!

1. Seleccione el rango donde insertará el espacio antes de las letras mayúsculas y haga clic en el Kutools > Texto > Añadir texto. Ver captura de pantalla:

2. En el cuadro de diálogo de apertura Agregar texto, escriba un espacio en el Texto casilla, marque la Solo agregar a la opción y seleccionar La primera letra es mayúscula del desplegable Solo agregar a la lista desplegable.

3. Haga clic en Ok para insertar un espacio antes de cada letra mayúscula como se muestra en la siguiente captura de pantalla:
doc agregar espacios antes de mayúsculas 7

Kutools for Excel - Potencia Excel con más de 300 herramientas esenciales. ¡Disfrute de una prueba GRATUITA de 30 días con todas las funciones sin necesidad de tarjeta de crédito! Consíguelo ahora

Notas: Este método también agregará espacio al comienzo de las celdas si la primera letra es mayúscula. Puede aplicar Kutools > Texto > Eliminar espacios para eliminar todos los espacios iniciales de las celdas seleccionadas.


Artículo relacionado:

Las mejores herramientas de productividad de oficina

🤖 Asistente de IA de Kutools: Revolucionar el análisis de datos basado en: Ejecución inteligente   |  Generar codigo  |  Crear fórmulas personalizadas  |  Analizar datos y generar gráficos  |  Invocar funciones de Kutools...
Características populares: Buscar, resaltar o identificar duplicados   |  Eliminar filas en blanco   |  Combine columnas o celdas sin perder datos   |   Ronda sin fórmula ...
Super búsqueda: Búsqueda virtual de criterios múltiples    Búsqueda V de valores múltiples  |   VLookup en varias hojas   |   Búsqueda difusa ....
Lista desplegable avanzada: Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple ....
Administrador de columnas: Agregar un número específico de columnas  |  Mover columnas  |  Toggle Estado de visibilidad de columnas ocultas  |  Comparar rangos y columnas ...
Características destacadas: Enfoque de cuadrícula   |  Vista de diseño   |   Gran barra de fórmulas    Administrador de hojas y libros de trabajo   |  Biblioteca de Recursos (Texto automático)   |  Selector de fechas   |  Combinar hojas de trabajo   |  Cifrar/descifrar celdas    Enviar correos electrónicos por lista   |  Súper filtro   |   Filtro especial (filtro negrita/cursiva/tachado...) ...
Los 15 mejores conjuntos de herramientas12 Texto Herramientas (Añadir texto, Quitar caracteres, ...)   |   50+ Tabla Tipos (Diagrama de Gantt, ...)   |   40+ Práctico Fórmulas (Calcular la edad según el cumpleaños, ...)   |   19 Inserción Herramientas (Insertar código QR, Insertar imagen desde la ruta, ...)   |   12 Conversión Herramientas (Números a palabras, Conversión de Moneda, ...)   |   7 Fusionar y dividir Herramientas (Filas combinadas avanzadas, Células partidas, ...)   |   ... y más

Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo.  Haga clic aquí para obtener la función que más necesita...

Descripción


Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
Comments (9)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This function handles two problems that the given solution doesn't cover:
1. non-English text (with diacritical marks)
2. successive capitals that should not have spaces after them

` Private Function AddSpaces(sText As String)As String
' Inserts a space immediately before a capital letter, except when successive characters are each capitalized.
' Last Updated: 2022-07-04
'
Dim sRet As String, i As Integer, sChar As String, bPrevWasUCase As Boolean

sRet = Left(sText, 1)
For i = 2 To Len(sText)
sChar = Mid(sText, i, 1)
If sChar = UCase(sChar) And Not bPrevWasUCase Then
sRet = sRet & " " & sChar
bPrevWasUCase = True
Else
sRet = sRet & sChar
bPrevWasUCase = False
End If
Next i

AddSpaces= sRet
End Function`
This comment was minimized by the moderator on the site
Hello friend,

Thanks for your share. I tried your VBA code, but it doesn't work. Our VBA code can handle the non-english text. I have test the french text and spaces are successfully inserted before the capital letters.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Hello

First thanks a lot for your code example and the explanations. It works very well for my case.

I just have 1 Problem, some of the Strings contain words like URL, which should not be seperated.
Do you see a way to except for example "URL" from adding spaces?

Would be very nice if you can help. I tried already a while, but i dont know how to solve this..


Best regards
luca
This comment was minimized by the moderator on the site
hi wanna ask you if you found solution for you case, if you found solution please provide me with that
This comment was minimized by the moderator on the site
Hi,
Thanks for your comment and advice. I have sent your suggestion to the Kutools project team, I’m sure they’ll improve it soon.
This comment was minimized by the moderator on the site
Found a solution?
This comment was minimized by the moderator on the site
Hi there, your code works fantastic. Do you know how to adapt code 20140723 to work on multiple sheets? I would like to add spaces between capital letters throughout the entire workbook. Thanks!
This comment was minimized by the moderator on the site
i need a help in excel i want to find Uppercase in a cell. for example: Sagar Paul MBA 16:04 i want MBA to be highlighted
This comment was minimized by the moderator on the site
I hope you can see it and give it a trial. Sub Test() Dim Rg As Range, xCell As Range Dim i As Long Dim xChar As String Set Rg = Application.Selection For Each xCell In Rg For i = 1 To xCell.Characters.Count xChar = xCell.Characters(i, 1).Text If Asc(xChar) > 64 And Asc(xChar) < 91 Then xCell.Characters(i, 1).Font.Color = vbRed End If Next Next End Sub
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations