Skip to main content

 Come convertire una stringa di testo in maiuscolo iniziale con eccezioni in Excel?

Author: Xiaoyang Last Modified: 2025-05-29

In Excel, puoi applicare la funzione Propriamente per convertire facilmente le stringhe di testo in maiuscolo iniziale. Tuttavia, a volte è necessario escludere alcune parole specifiche durante la conversione delle stringhe di testo in maiuscolo iniziale, come mostrato nello screenshot seguente. In questo articolo, parlerò di alcuni trucchi rapidi per risolvere questa operazione in Excel.

convert text string to proper case with exceptions

Convertire stringhe di testo in maiuscolo iniziale con eccezioni utilizzando una formula

Convertire stringhe di testo in maiuscolo iniziale con eccezioni utilizzando il codice VBA


Convertire stringhe di testo in maiuscolo iniziale con eccezioni utilizzando una formula

Forse la seguente formula può aiutarti a gestire rapidamente questa attività, procedi come segue:

Inserisci questa formula:

=MAIUSC(SINISTRA(A2))&PARTE(TRIM(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(" "&PROPRIAMENTE(A2)&" "," Di "," di ")," A "," a "),"È "," è ")," Usa "," USA ")),2,LUNGHEZZA(A2)) in una cella dove vuoi ottenere il risultato, quindi trascina la maniglia di riempimento per applicare questa formula, e le stringhe di testo verranno convertite in maiuscolo iniziale ma con eccezioni specifiche, vedi screenshot:

convert text string to proper case with exceptions by using formula

Nota: Nella formula sopra, A2 è la cella che desideri convertire, “Di ”, “A”, “È”, “Usa” sono le parole normali in maiuscolo iniziale dopo la conversione, “di ”, “a”, “è”, “USA” sono le parole che desideri escludere dal maiuscolo iniziale. Puoi modificarle secondo necessità o aggiungere altre parole con la funzione SOSTITUISCI.



Convertire stringhe di testo in maiuscolo iniziale con eccezioni utilizzando il codice VBA

Se la formula sopra è un po' difficile da comprendere e modificare secondo necessità, qui puoi anche applicare un codice VBA per completare questa attività. Procedi con i seguenti passaggi uno per uno.

1. Tieni premuti i tasti ALT + F11 per aprire la finestra Microsoft Visual Basic for Applications.

2. Clicca su Inserisci > Modulo, e incolla il seguente codice nella Finestra del Modulo.

Codice VBA: convertire stringhe di testo in maiuscolo iniziale 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 premi il tasto F5 per eseguire questo codice, e apparirà una finestra di avviso per ricordarti di selezionare le celle originali che desideri convertire, vedi screenshot:

vba code to select data range

4. E poi clicca OK, seleziona le celle dove vuoi ottenere i risultati nella finestra apparsa, vedi screenshot:

vba code to desitination cell

5. Continua a cliccare OK, e nella finestra di dialogo popup, seleziona i testi che desideri escludere, vedi screenshot:

vba code to select excluded text

6. E poi clicca OK per uscire dalle finestre di dialogo, e tutte le stringhe di testo saranno state convertite in maiuscolo iniziale ma escludendo le parole specificate, vedi screenshot:

result of converting text string to proper case with exceptions

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l'analisi dei dati grazie a: Esecuzione Intelligente | Genera Codice | Crea Formule Personalizzate | Analizza Dati e Genera Grafici | Richiama Funzioni avanzate di Kutools
Funzionalità popolari: Trova, evidenzia o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda...
Super RICERCA.VERT: Ricerca VERT con criteri multipli | Ricerca VERT con valori multipli | Ricerca su più fogli | Corrispondenza approssimativa...
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa multi-selezione...
Gestione Colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Attiva/disattiva la visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro e Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email tramite elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...) ...
Top15 set di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule pratiche (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci Immagine da percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti di unione e divisione (Unione avanzata righe, Dividi celle, ...) | ... e molto altro

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...


Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • 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, invece che in nuove finestre.
  • Aumenta la tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!