Come convertire la stringa di testo in caso corretto con eccezioni in Excel?
In Excel, puoi applicare la funzione Corretto per convertire facilmente le stringhe di testo in maiuscole e minuscole, ma, a volte, è necessario escludere alcune parole specifiche quando si convertono le stringhe di testo nel caso corretto come mostrato nella seguente schermata. In questo articolo, parlerò di alcuni trucchi rapidi per risolvere questo lavoro in Excel.
Converti stringhe di testo in maiuscole e minuscole con eccezioni utilizzando la formula
Converti le stringhe di testo in maiuscole e minuscole con eccezioni utilizzando il codice VBA
Converti stringhe di testo in maiuscole e minuscole con eccezioni utilizzando la formula
Potrebbe essere la seguente formula che può aiutarti ad affrontare rapidamente questo compito, per favore fai come segue:
Inserisci questa formula:
= UPPER (LEFT (A2)) & MID (TRIM (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE ("" & PROPER (A2) & "", "Of", "of"), "A", "a"), "Is "," è ")," Usa "," USA ")), 2, LEN (A2)) in una cella in cui si desidera ottenere il risultato, quindi trascinare il quadratino di riempimento per riempire questa formula e le stringhe di testo sono state convertite in maiuscolo e minuscolo ma eccezioni specifiche, vedi screenshot:
Note:: Nella formula sopra, A2 è la cella che vuoi convertire, "Of", "A", "Is", "Usa" sono le normali parole appropriate dopo la conversione, "Di", "a", "è", "USA" sono le parole che vuoi escludere dal caso corretto. Puoi modificarli secondo le tue necessità o aggiungere altre parole con la funzione SOSTITUISCI.
Converti le stringhe di testo in maiuscole e minuscole con eccezioni utilizzando il codice VBA
Se la formula sopra è alquanto difficile da capire e da modificare in base alle tue necessità, qui puoi anche applicare un codice VBA per completare questa attività. Si prega di eseguire i seguenti passaggi uno per uno.
1. Tieni premuto il ALT + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.
2. Clic inserire > Modulie incolla il codice seguente nel file Finestra del modulo.
Codice VBA: converti le stringhe di testo nel caso corretto con eccezioni:
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. Quindi premere F5 chiave per eseguire questo codice e viene visualizzata una finestra di messaggio per ricordarti di selezionare le celle originali che desideri convertire, vedi screenshot:
4. E poi clicca OK, seleziona le celle in cui desideri visualizzare i risultati nella casella spuntata, vedi screenshot:
5. Vai al clic OKe nella finestra di dialogo popup, seleziona i testi che desideri escludere, vedi screenshot:
6. E poi clicca OK per uscire dalle finestre di dialogo e tutte le stringhe di testo sono state convertite nel caso corretto ma escludono le parole specificate, vedi screenshot:
I migliori strumenti per la produttività in ufficio
Potenzia le tue competenze di Excel con Kutools per Excel e sperimenta l'efficienza come mai prima d'ora. Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Fai clic qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e semplifica notevolmente il tuo lavoro
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
- Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!