Como converter uma cadeia de texto para Primeira Letra em Maiúscula no Excel, com exceções?
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 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:

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:

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

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

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:

As Melhores Ferramentas de Produtividade para o Office
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.
- 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