KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

Como converter uma cadeia de texto para Primeira Letra em Maiúscula no Excel, com exceções?

AutorXiaoyang Data de Modificação

No Excel, pode utilizar facilmente a função PROPER para converter cadeias de texto com a primeira letra em maiúscula, mas por vezes é necessário excluir certas palavras específicas durante essa conversão, como ilustrado na imagem seguinte. Neste artigo, apresento alguns truques rápidos para resolver esta tarefa no Excel.

converter cadeia de texto para maiúsculas e minúsculas corretas com exceções

Converter cadeias de texto em Primeira Letra em Maiúscula com exceções utilizando uma fórmula

Converter cadeias de texto em Primeira Letra em Maiúscula com exceções utilizando código VBA


Converter cadeias de texto em Primeira Letra em Maiúscula com exceções utilizando uma fórmula

A fórmula seguinte pode ajudá-lo a concluir esta tarefa rapidamente. Siga estes passos:

Introduza esta fórmula:

=UPPER(LEFT(A2))&MID(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(« »&PROPER(A2)&« »,« Of »,« of »),« A »,« a »),«Is »,« is »),« Usa »,« USA »)),2,LEN(A2)) numa célula onde pretenda obter o resultado e, em seguida, arraste a pega de preenchimento para aplicar esta fórmula. As cadeias de texto são convertidas com a primeira letra em maiúscula, exceto as palavras específicas indicadas. Veja a imagem:

converter cadeia de texto para maiúsculas e minúsculas corretas com exceções utilizando uma fórmula

Nota: Na fórmula acima, A2 é a célula que pretende converter; “of”, “a”, “is”, “usa” são as palavras que normalmente permanecem em letra minúscula após a conversão; e “Of”, “A”, “Is”, “USA” são as palavras que pretende excluir da capitalização em primeira letra. Pode ajustá-las conforme necessário ou adicionar outras palavras utilizando a função SUBSTITUTE.



Converter cadeias de texto em Primeira Letra em Maiúscula com exceções utilizando código VBA

Se a fórmula anterior for um pouco difícil de compreender ou adaptar às suas necessidades, pode também utilizar um código VBA para concluir esta tarefa. Siga os passos seguintes, um a um.

1. Prima e mantenha premidas as teclas ALT + F11 para abrir a janela do Microsoft Visual Basic for Applications.

2. Clique em Inserir > Módulo e cole o código seguinte na Janela do Módulo.

Código VBA: converter cadeias de texto em Primeira Letra em Maiúscula com exceções:

Sub CellsValueChange()
'Updateby Extendoffice
    Dim xSRg As Range
    Dim xDRg As Range
    Dim xPRg As Range
    Dim xSRgArea As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim I As Long
    Dim K As Long
    Dim KK As Long
    On Error Resume Next
    xAddress = Application.ActiveWindow.RangeSelection.Address
    Set xSRg = Application.InputBox("Original cells:", "KuTools For Excel", xAddress, , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    Set xDRg = Application.InputBox("Output cells:", "KuTools For Excel", , , , , , 8)
    If xDRg Is Nothing Then Exit Sub
    Set xPRg = Application.InputBox("Cells to exclude:", "KuTools For Excel", , , , , , 8)
    If xPRg Is Nothing Then Exit Sub
    Set xDRg = xDRg(1)
    For I = 1 To xSRg.Areas.Count
        Set xSRgArea = xSRg.Areas.Item(I)
        For K = 1 To xSRgArea.Count
            xRgVal = xSRgArea(K).Value
            If Not IsNumeric(xRgVal) Then
                xRgVal = CorrectCase(xRgVal, xPRg)
                xDRg.Offset(KK).Value = xRgVal
            End If
            KK = KK + 1
        Next
    Next
End Sub
Function CorrectCase(ByVal xRgVal As String, ByVal xPRg As Range) As String
    Dim xArrWords As Variant
    Dim I As Integer
    Dim xPointer As Integer
    Dim xVal As String
    xPointer = 1
    xVal = xRgVal
    xArrWords = WordsOf(xRgVal)
    For I = 0 To UBound(xArrWords)
        xPointer = InStr(xPointer, " " & xVal, " " & xArrWords(I))
        Debug.Print xPointer
        Mid(xVal, xPointer) = CorrectCaseOneWord(CStr(xArrWords(I)), xPRg)
    Next I
    CorrectCase = xVal
End Function
Function WordsOf(xRgVal As String) As Variant
    Dim xDelimiters As Variant
    Dim xArrRtn As Variant
    xDelimiters = Array(",", ".", ";", ":", Chr(34), vbCr, vbLf)
    For Each xEachDelimiter In xDelimiters
        xRgVal = Application.WorksheetFunction.Substitute(xRgVal, xEachDelimiter, " ")
    Next xEachDelimiter
    xArrRtn = Split(Trim(xRgVal), " ")
    WordsOf = xArrRtn
End Function
Function CorrectCaseOneWord(xArrWord As String, xERg As Range) As String
    With xERg
        If IsError(Application.Match(xArrWord, .Cells, 0)) Then
            CorrectCaseOneWord = Application.Proper(xArrWord)
        Else
            CorrectCaseOneWord = Application.VLookup(xArrWord, .Cells, 1, 0)
        End If
    End With
End Function

3. Em seguida, prima a tecla F5 para executar este código. Será apresentada uma caixa de diálogo a solicitar que selecione as células originais que pretende converter. Veja a imagem:

código VBA para selecionar intervalo de dados

4. Depois, clique em OK e selecione, na caixa que surge, as células onde pretende colocar os resultados. Veja a imagem:

código VBA para célula de destino

5. Clique novamente em OK e, na caixa de diálogo que aparece, selecione os textos que pretende eliminar. Veja a imagem:

código VBA para selecionar texto excluído

6. Por fim, clique em OK para fechar as caixas de diálogo. Todas as cadeias de texto foram convertidas em Primeira Letra em Maiúscula, excluindo as palavras especificadas. Veja a imagem:

resultado da conversão de cadeia de texto para maiúsculas e minúsculas corretas com exceções

As Melhores Ferramentas de Produtividade para o Office

🤖KUTOOLS AI Assistente: Revolucione o Análise de Dados com base em:Execução Inteligente   |  Gerar Código|  Criar fórmulas personalizadas  |  Analisar Dados e Gerar Gráficos|  Invocar Funções Aprimoradas
Funcionalidades Populares:Localizar, Destacar ou Marcar Duplicatas   |  Excluir linhas em branco   |  Combinar Colunas ou Células sem Perder Dados   |   Arredondamento sem usar fórmula...
Super PROC:VLookup com Múltiplos Critérios  |  VLookup com Múltiplos Valores  |   VLookup em Múltiplas Folhas   |   Correspondência Fuzzy....
Lista Suspensa Avançada:Criar Rapidamente Lista de Seleção   |  Lista de Seleção Dependente   |  Lista de Seleção com Múltipla Escolha....
Gestor de Colunas:Adicionar um Número Específico de Colunas|Mover Colunas|Alternar Estado de Visibilidade de Colunas Ocultas|Comparar Intervalos e Colunas...
Funcionalidades em Destaque:Grade de foco   |  Visualização de Design   |Barra de fórmulas aprimorada   | Gestor de Pastas de Trabalho e Folhas   |  Biblioteca de Recursos(Texto Automático)|  Seleção de Data   |  Consolidar Planilhas  |  Encriptar/Descriptografar Células   | Enviar Emails por Lista   |  Super Filtro   |   Filtro Especial(Filtrar Células com Fonte em Negrito/itálico/rasurado...) ...
Principais Conjuntos de Ferramentas 15:12 Ferramentasde Texto(Adicionar Texto,Excluir Caracteres Específicos, ...)|   50+Tiposde Gráfico(Gráfico de Gantt, ...)|   40+ Fórmulas Práticas(Calcular a idade com base na data de nascimento, ...)|   19 Ferramentasde Inserção(Inserir QR Code,Inserir Imagem a Partir do Caminho, ...)|   12 Ferramentasde Conversão(Converter em Palavras,Conversão de moeda, ...)|   7 Ferramentasde Mesclar e Dividir(Mesclar Linhas Avançado,Dividir Células, ...)|... e muito mais
Utilize o Kutools na sua língua preferida – suporta inglês, espanhol, alemão, francês, chinês e mais 40+ idiomas!

Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...


Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil

  • Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
  • Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!

Todos os suplementos Kutools — num único instalador.

Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.

ExcelWordOutlookTabsPowerPoint
  • Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Um instalador, uma licença— configuração em minutos (pronto para MSI)
  • Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
  • Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
  • Melhor relação qualidade-preço— poupe face à compra individual dos suplementos