Hoe tekstreeks naar het juiste geval te converteren met uitzonderingen in Excel?
In Excel kunt u de Proper-functie toepassen om tekstreeksen gemakkelijk naar het juiste hoofdlettergebruik te converteren, maar soms moet u enkele specifieke woorden uitsluiten bij het converteren van de tekstreeksen naar het juiste hoofdlettergebruik, zoals in het onderstaande screenshot. In dit artikel zal ik het hebben over enkele snelle trucs om deze taak in Excel op te lossen.
Converteer tekstreeksen naar het juiste hoofdlettergebruik met uitzonderingen door de formule te gebruiken
Mogelijk kan de volgende formule u helpen om deze taak snel uit te voeren, doe dit als volgt:
Voer deze formule in:
= BOVEN (LINKS (A2)) & MIDDEN (TRIM (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE ("" & PROPER (A2) & "", "Of", "of"), "A", "a"), "Is "," is ")," Usa "," USA ")), 2, LEN (A2)) naar een cel waar u het resultaat wilt krijgen en sleep vervolgens de vulgreep om deze formule te vullen, en de tekstreeksen zijn geconverteerd naar de juiste hoofdletters, maar specifieke uitzonderingen, zie screenshot:
Note: In de bovenstaande formule, A2 is de cel die u wilt converteren, "Of", "A", "Is", "Usa" zijn de normale juiste hoofdletterwoorden na het converteren, "Van", "a", "is", "VS" zijn de woorden die u wilt uitsluiten van de juiste hoofdlettergebruik. U kunt ze naar wens wijzigen of andere woorden toevoegen met de functie SUBSTITUTE.
Converteer tekstreeksen naar het juiste hoofdlettergebruik met uitzonderingen door VBA-code te gebruiken
Als de bovenstaande formule enigszins moeilijk te begrijpen is en aan uw behoefte verandert, kunt u hier ook een VBA-code toepassen om deze taak te voltooien. Voer de volgende stappen een voor een uit.
1. Houd de ALT + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.
2. Klikken Invoegen > Moduleen plak de volgende code in het Module Venster.
VBA-code: converteer tekstreeksen naar het juiste geval 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 F5 sleutel om deze code uit te voeren, en er verschijnt een promptvenster om u eraan te herinneren de originele cellen te selecteren die u wilt converteren, zie screenshot:
4. En klik vervolgens op OK, selecteer de cellen waar u de resultaten wilt uitvoeren in het uitgeklapte vak, zie screenshot:
5. Ga door met klikken OK, en selecteer in het pop-upvenster de teksten die u wilt uitsluiten, zie screenshot:
6. En klik vervolgens op OK om de dialoogvensters te verlaten en alle tekstreeksen zijn geconverteerd naar het juiste hoofdlettergebruik, maar sluit de opgegeven woorden uit, zie screenshot:
Beste Office-productiviteitstools
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die u het meest nodig heeft...
Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
- Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!