Hoe converteer je een tekst naar hoofdletters met uitzonderingen in Excel?
In Excel kun je de functie 'Eerste letter in hoofdletters' gebruiken om tekst gemakkelijk om te zetten naar hoofdletters, maar soms wil je bepaalde woorden uitsluiten bij het omzetten van tekst naar hoofdletters, zoals te zien is in de onderstaande schermafbeelding. In dit artikel bespreek ik enkele snelle trucs om deze taak in Excel uit te voeren.
Converteer tekst naar hoofdletters met uitzonderingen door een formule te gebruiken
Converteer tekst naar hoofdletters met uitzonderingen door VBA-code te gebruiken
Converteer tekst naar hoofdletters met uitzonderingen door een formule te gebruiken
Misschien kan de volgende formule u helpen om deze taak snel uit te voeren, doe het als volgt:
Voer deze formule in:
=UPPER(LEFT(A2))&MID(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(" "&PROPER(A2)&" "," Of "," of ")," A "," a "),"Is "," is ")," Usa "," USA ")),2,LEN(A2)) in een cel waar je het resultaat wilt krijgen, en sleep vervolgens de vulhendel om deze formule te kopiëren, en de tekst wordt omgezet naar hoofdletters met specifieke uitzonderingen, zie screenshot:
Opmerking: In de bovenstaande formule is A2 de cel die je wilt converteren, “Of ”, “A”, “Is”, “Usa” zijn de normale woorden met hoofdletters na conversie, “of ”, “a”, “is”, “USA” zijn de woorden die je wilt uitsluiten van de hoofdletterconversie. Je kunt ze naar behoefte wijzigen of andere woorden toevoegen met de functie SUBSTITUTE.
Converteer tekst naar hoofdletters met uitzonderingen door VBA-code te gebruiken
Als de bovenstaande formule enigszins moeilijk te begrijpen en aan te passen is, kun je ook een VBA-code gebruiken om deze taak uit te voeren. Volg de volgende stappen één voor één.
1. Houd de toetsen ALT + F11 ingedrukt om het venster Microsoft Visual Basic for Applications te openen.
2. Klik op Invoegen > Module, en plak de volgende code in het Modulevenster.
VBA-code: converteer tekst naar hoofdletters met uitzonderingen:
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. Druk vervolgens op de toets F5 om deze code uit te voeren, en er verschijnt een pop-upvenster dat je eraan herinnert de originele cellen te selecteren die je wilt converteren, zie screenshot:
4. Klik vervolgens op OK, selecteer de cellen waar je de resultaten wilt uitvoeren in het pop-upvenster, zie screenshot:
5. Klik opnieuw op OK, en in het pop-upvenster selecteer je de teksten die je wilt uitsluiten, zie screenshot:
6. Klik vervolgens op OK om de dialoogvensters te sluiten, en alle tekst is geconverteerd naar hoofdletters, met uitzondering van de gespecificeerde woorden, zie screenshot:
Beste Office-productiviteitstools
Versterk je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die je het meest nodig hebt...
Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
- Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!