Gå til hovedindhold

 Hvordan konverteres tekststreng til korrekt sag med undtagelser i Excel?

Forfatter: Xiaoyang Sidst ændret: 2017-08-23

I Excel kan du anvende den korrekte funktion til let at konvertere tekststrenge til korrekt sag, men nogle gange er du nødt til at ekskludere nogle specifikke ord, når du konverterer tekststrengene til den korrekte sag som vist på nedenstående skærmbillede. Denne artikel vil jeg tale om nogle hurtige tricks til at løse dette job i Excel.

Konverter tekststrenge til korrekt bogstav med undtagelser ved hjælp af formlen

Konverter tekststrenge til korrekt sag med undtagelser ved hjælp af VBA-kode


Konverter tekststrenge til korrekt bogstav med undtagelser ved hjælp af formlen

Kan være følgende formel, der kan hjælpe dig med at håndtere denne opgave hurtigt, skal du gøre som dette:

Indtast denne formel:

= ØVERSTE (VENSTRE (A2)) & MIDDEL (TRIM (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE (SUBSTITUTUTE ("" & PROPER (A2) & "", "Of", "of"), "A", "a"), "Is "," is ")," Usa "," USA ")), 2, LEN (A2)) ind i en celle, hvor du vil få resultatet, og træk derefter fyldhåndtaget for at udfylde denne formel, og tekststrengene er blevet konverteret korrekt, men specifikke undtagelser, se skærmbillede:

Bemærk: I ovenstående formel A2 er den celle, du vil konvertere, "Af", "A", "Er", "USA" er de normale ord, der er rigtige efter konvertering, “Af”, “a”, “er”, “USA” er de ord, du vil udelukke fra den rigtige sag. Du kan ændre dem til dit behov eller tilføje andre ord med SUBSTITUTE-funktionen.


Konverter tekststrenge til korrekt sag med undtagelser ved hjælp af VBA-kode

Hvis ovenstående formel er noget vanskelig at forstå og ændre til dit behov, kan du her også anvende en VBA-kode for at afslutte denne opgave. Benyt følgende trin en efter en.

1. Hold nede ALT + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.

2. Klik indsatte > Moduler, og indsæt følgende kode i Modul vindue.

VBA-kode: konverter tekststrenge til den korrekte sag med undtagelser:

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. Tryk derefter på F5 nøgle til at køre denne kode, og der vises en hurtigboks for at minde dig om at vælge de originale celler, du vil konvertere, se skærmbillede:

4. Og klik derefter på OK, vælg de celler, hvor du vil output resultaterne i det poppede felt, se skærmbillede:

5. Gå på klik OK, og i popup-dialogboksen skal du vælge de tekster, du vil ekskludere, se skærmbillede:

6. Og klik derefter på OK for at afslutte dialogerne, og alle tekststrengene er konverteret til den korrekte sag, men ekskluderer de angivne ord, se skærmbillede:

Bedste kontorproduktivitetsværktøjer

🤖 Kutools AI Aide: Revolutionér dataanalyse baseret på: Intelligent udførelse   |  Generer kode  |  Opret brugerdefinerede formler  |  Analyser data og generer diagrammer  |  Aktiver Kutools funktioner...
Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøjer (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøjer (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøjer (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøjer (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

Beskrivelse


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This would be amazing if only the Macro excluded the part of the sting in CAPS not the entire cell from the exceptions list.
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations