Ir para o conteúdo principal

Como inserir espaços antes de letras maiúsculas no excel?

Suponha que você tenha uma lista de strings de texto em que todos os espaços entre as palavras são removidos acidentalmente, como este: Inserir linhas em branco entre dados, e agora você deseja adicionar os espaços antes de cada letra com letras maiúsculas para separar as palavras como Inserir linhas em branco entre os dados. Como você poderia adicionar espaços na frente das letras maiúsculas rapidamente em vez de digitar espaços um a um no Excel?


Insira espaços antes das letras maiúsculas com a função definida pelo usuário

Infelizmente, não há uma maneira direta de adicionar espaços antes das letras maiúsculas no Excel, mas você pode criar uma função definida pelo usuário para resolver essa tarefa.

1. Ative sua planilha que contém as cadeias de texto que você deseja adicionar espaços.

2. Segure o ALT + F11 chaves para abrir o Janela Microsoft Visual Basic for Applications.

3. Clique inserção > Móduloe cole o seguinte código no Janela do módulo.

Código VBA: insira espaços antes das letras maiú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. Em seguida, salve e feche este código, volte para a planilha e insira esta fórmula = addspaces (A1) em uma célula em branco ao lado de seus dados, veja a captura de tela:
doc-adicionar-espaços-antes-maiúsculos-1

5. E, em seguida, arraste a alça de preenchimento sobre o intervalo em que deseja conter esta fórmula, você obterá os espaços são inseridos antes de cada letra maiúscula.
doc-adicionar-espaços-antes-maiúsculos-1

Remova facilmente espaços iniciais / finais / extras nas células

Kutools para Excel Remover Espaços O utilitário permite que os usuários do Excel removam facilmente todos os espaços à esquerda, espaços à direita, espaços extras ou todos os espaços das células selecionadas rapidamente.


espaço de remoção de anúncio 1

Insira espaços antes das letras maiúsculas com o código VBA

Aqui está outro código VBA que pode lhe fazer um favor, faça o seguinte:

1. Segure o ALT + F11 chaves para abrir o Janela Microsoft Visual Basic for Applications.

2. Clique inserção > Móduloe cole o seguinte código no Janela do módulo.

Código VBA: insira espaços antes das letras maiú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. Então aperte F5 para executar este código, uma caixa de prompt aparecerá para permitir que você selecione um intervalo de dados que deseja usar.
doc-adicionar-espaços-antes-maiúsculos-1

4. E, em seguida, clique em OK para fechar esta caixa de prompt, os espaços foram inseridos antes das letras maiúsculas de uma vez, veja a imagem:
doc-adicionar-espaços-antes-maiúsculos-1


Insira um espaço antes de cada letra maiúscula com o Kutools para Excel

Kutools para Excel Adicionar texto O utilitário pode ajudá-lo a ignorar as macros VBA e inserir espaço antes de cada letra maiúscula facilmente no Excel.

Kutools for Excel - Embalado com mais de 300 ferramentas essenciais para Excel. Desfrute de um teste GRATUITO de 30 dias com todos os recursos, sem necessidade de cartão de crédito! Baixe Agora!

1. Selecione o intervalo onde você irá inserir o espaço antes das letras maiúsculas e clique no botão Kutools > Texto > Adicionar texto. Veja a imagem:

2. Na abertura da caixa de diálogo Adicionar Texto, digite um espaço no Texto caixa, marque a Apenas adicionar à opção e selecione 1ª letra é maiúscula do Apenas adicione a lista suspensa.

3. Clique no Ok botão para inserir espaço antes de cada letra maiúscula, conforme a captura de tela mostrada a seguir:
doc adicione espaços antes de 7 maiúsculas

Kutools for Excel - Turbine o Excel com mais de 300 ferramentas essenciais. Desfrute de um teste GRATUITO de 30 dias com todos os recursos, sem necessidade de cartão de crédito! Get It Now

Notas: Este método também adicionará espaço no início das células se a primeira letra for maiúscula. Você pode aplicar Kutools > Texto > Remover Espaços para remover todos os espaços iniciais das células selecionadas.


Artigo relacionado:

Melhores ferramentas de produtividade de escritório

🤖 Assistente de IA do Kutools: Revolucionar a análise de dados com base em: Execução Inteligente   |  Gerar Código  |  Crie fórmulas personalizadas  |  Analise dados e gere gráficos  |  Invocar funções do Kutools...
Recursos mais comuns: Encontre, destaque ou identifique duplicatas   |  Excluir linhas em branco   |  Combine colunas ou células sem perder dados   |   Rodada sem Fórmula ...
Super pesquisa: VLookup de múltiplos critérios    VLookup de múltiplos valores  |   VLookup em várias planilhas   |   Pesquisa Difusa ....
Lista suspensa avançada: Crie rapidamente uma lista suspensa   |  Lista suspensa de dependentes   |  Lista suspensa de seleção múltipla ....
Gerenciador de colunas: Adicione um número específico de colunas  |  Mover colunas  |  Alternar status de visibilidade de colunas ocultas  |  Compare intervalos e colunas ...
Recursos em destaque: Foco da Grade   |  Vista de Design   |   Grande Barra de Fórmula    Gerenciador de pastas de trabalho e planilhas   |  Biblioteca (Auto texto)   |  Data Picker   |  Combinar planilhas   |  Criptografar/Descriptografar Células    Enviar e-mails por lista   |  Super Filtro   |   Filtro Especial (filtro negrito/itálico/tachado...) ...
15 principais conjuntos de ferramentas12 Texto Ferramentas (Adicionar texto, Remover Personagens, ...)   |   50+ de cores Tipos (Gráfico de Gantt, ...)   |   Mais de 40 práticos Fórmulas (Calcule a idade com base no aniversário, ...)   |   19 Inclusão Ferramentas (Insira o código QR, Inserir imagem do caminho, ...)   |   12 Conversão Ferramentas (Números para Palavras, Conversão de moedas, ...)   |   7 Unir e dividir Ferramentas (Combinar linhas avançadas, Dividir células, ...)   |   ... e mais

Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo.  Clique aqui para obter o recurso que você mais precisa...

Descrição


Office Tab traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
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