Vai al contenuto principale

Come inserire spazi prima delle lettere maiuscole in Excel?

Autore: Xiaoyang Ultima modifica: 2020-09-10

Supponendo di avere un elenco di stringhe di testo che tutti gli spazi tra le parole vengono rimossi accidentalmente, in questo modo: Inseriscirighe vuote tra i dati, e ora vuoi aggiungere gli spazi prima di ogni lettera con lettere maiuscole per separare le parole come Inserisci righe vuote tra i dati. Come potresti aggiungere rapidamente spazi davanti alle lettere maiuscole invece di digitare gli spazi uno per uno in Excel?


Inserisci spazi prima delle lettere maiuscole con la funzione definita dall'utente

Sfortunatamente, non esiste un modo diretto per aggiungere spazi prima delle lettere maiuscole in Excel, ma puoi creare una funzione definita dall'utente per risolvere questa attività.

1. Attiva il tuo foglio di lavoro che contiene le stringhe di testo a cui vuoi aggiungere spazi.

2. Tieni premuto il ALT + F11 chiavi per aprire il Finestra di Microsoft Visual Basic, Applications Edition.

3. Clic inserire > Modulie incolla il codice seguente nel file Finestra del modulo.

Codice VBA: inserisci spazi prima delle lettere maiuscole

Function AddSpaces(pValue As String) As String
'Update 20140723
Dim xOut As String
xOut = VBA.Left(pValue, 1)
For i = 2 To VBA.Len(pValue)
   xAsc = VBA.Asc(VBA.Mid(pValue, i, 1))
   If xAsc >= 65 And xAsc <= 90 Then
      xOut = xOut & " " & VBA.Mid(pValue, i, 1)
   Else
      xOut = xOut & VBA.Mid(pValue, i, 1)
   End If
Next
AddSpaces = xOut
End Function

4. Quindi salva e chiudi questo codice, torna al foglio di lavoro e inserisci questa formula = addspaces (A1) in una cella vuota oltre ai tuoi dati, vedi screenshot:
doc-aggiungi-spazi-prima-maiuscolo-1

5. Quindi trascina il quadratino di riempimento sull'intervallo in cui desideri contenere questa formula, otterrai gli spazi inseriti prima di ogni lettera maiuscola.
doc-aggiungi-spazi-prima-maiuscolo-1

Rimuovi facilmente gli spazi iniziali / finali / extra nelle celle

Kutools per Excel Rimuovi spazi L'utilità consente agli utenti di Excel di rimuovere facilmente tutto lo spazio iniziale, lo spazio finale, gli spazi extra o tutti gli spazi dalle celle selezionate rapidamente.


annuncio rimuovi spazio 1

Inserisci spazi prima delle lettere maiuscole con codice VBA

Ecco un altro codice VBA che può farti un favore, per favore fai come segue:

1. Tieni premuto il ALT + F11 chiavi per aprire il Finestra di Microsoft Visual Basic, Applications Edition.

2. Clic inserire > Modulie incolla il codice seguente nel file Finestra del modulo.

Codice VBA: inserisci spazi prima delle lettere maiuscole

Sub AddSpacesRange()
'Update 20140723
Dim Rng As Range
Dim WorkRng As Range
Dim xOut As String
Dim xValue As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
For Each Rng In WorkRng
    xValue = Rng.Value
    xOut = VBA.Left(xValue, 1)
    For i = 2 To VBA.Len(xValue)
       xAsc = VBA.Asc(VBA.Mid(xValue, i, 1))
       If xAsc >= 65 And xAsc <= 90 Then
          xOut = xOut & " " & VBA.Mid(xValue, i, 1)
       Else
          xOut = xOut & VBA.Mid(xValue, i, 1)
       End If
    Next
    Rng.Value = xOut
Next
Application.ScreenUpdating = True
End Sub

3. Quindi premere F5 chiave per eseguire questo codice, verrà visualizzata una finestra di messaggio per consentire di selezionare un intervallo di dati che si desidera utilizzare.
doc-aggiungi-spazi-prima-maiuscolo-1

4. E poi clicca OK per chiudere questa finestra di messaggio, gli spazi sono stati inseriti prima delle lettere maiuscole contemporaneamente, vedi screenshot:
doc-aggiungi-spazi-prima-maiuscolo-1


Inserisci lo spazio prima di ogni lettera maiuscola con Kutools per Excel

Kutools per Excel aggiungi testo L'utilità può aiutarti a bypassare le macro VBA e inserire facilmente lo spazio prima di ogni lettera maiuscola in Excel.

Kutools for Excel - Ricco di oltre 300 strumenti essenziali per Excel. Goditi una prova GRATUITA di 30 giorni con tutte le funzionalità senza carta di credito richiesta! Scaricare ora!

1. Seleziona l'intervallo in cui inserire lo spazio prima delle lettere maiuscole e fai clic su Kutools > Testo > aggiungi testo. Vedi screenshot:

2. Nella finestra di dialogo Aggiungi testo di apertura, digita uno spazio nel file Testo casella, seleziona il file Aggiungi solo all'opzione e seleziona La prima lettera è maiuscola dal Aggiungi solo a menu `A tendina.

3. Clicca il Ok pulsante per inserire uno spazio prima di ogni lettera maiuscola come mostrato nella seguente schermata:
doc aggiunge spazi prima delle maiuscole 7

Kutools for Excel - Potenzia Excel con oltre 300 strumenti essenziali. Goditi una prova GRATUITA di 30 giorni con tutte le funzionalità senza carta di credito richiesta! Get It Now

Note: Questo metodo aggiungerà anche spazio all'inizio delle celle se la prima lettera è maiuscola. Puoi candidarti Kutools > Testo > Rimuovi spazi per rimuovere tutti gli spazi iniziali dalle celle selezionate.


Articolo correlato:

I migliori strumenti per la produttività in ufficio

🤖 Assistente AI di Kutools: Rivoluziona l'analisi dei dati basandosi su: Esecuzione intelligente   |  Genera codice  |  Crea formule personalizzate  |  Analizzare i dati e generare grafici  |  Richiama le funzioni di Kutools...
Funzioni popolari: Trova, evidenzia o identifica i duplicati   |  Elimina righe vuote   |  Combina colonne o celle senza perdere dati   |   Round senza formula ...
Super ricerca: VLookup a criteri multipli    VLookup a valori multipli  |   VLookup su più fogli   |   Ricerca fuzzy ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa   |  Elenco a discesa dipendente   |  Elenco a discesa a selezione multipla ....
Gestore di colonna: Aggiungi un numero specifico di colonne  |  Sposta colonne  |  Attiva/disattiva lo stato di visibilità delle colonne nascoste  |  Confronta intervalli e colonne ...
Funzionalità in primo piano: Messa a fuoco della griglia   |  Vista di progettazione   |   Grande barra delle formule    Gestore di cartelle di lavoro e fogli   |  Resource Library (Testo automatico)   |  Date picker   |  Combina fogli di lavoro   |  Crittografa/decrittografa le celle    Invia e-mail per elenco   |  Super filtro   |   Filtro speciale (filtro grassetto/corsivo/barrato...) ...
I 15 migliori set di strumenti12 Testo Strumenti (aggiungi testo, Rimuovi personaggi, ...)   |   50+ Grafico Tipi (Diagramma di Gantt, ...)   |   40+ Pratico Formule (Calcola l'età in base al compleanno, ...)   |   19 Inserimento Strumenti (Inserisci il codice QR, Inserisci immagine dal percorso, ...)   |   12 Conversione Strumenti (Numeri in parole, Conversione di valuta, ...)   |   7 Unisci e dividi Strumenti (Combina righe avanzate, Celle divise, ...)   |   ... e altro ancora

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...

Descrizione


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!
Comments (9)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
This function handles two problems that the given solution doesn't cover:
1. non-English text (with diacritical marks)
2. successive capitals that should not have spaces after them

` Private Function AddSpaces(sText As String)As String
' Inserts a space immediately before a capital letter, except when successive characters are each capitalized.
' Last Updated: 2022-07-04
'
Dim sRet As String, i As Integer, sChar As String, bPrevWasUCase As Boolean

sRet = Left(sText, 1)
For i = 2 To Len(sText)
sChar = Mid(sText, i, 1)
If sChar = UCase(sChar) And Not bPrevWasUCase Then
sRet = sRet & " " & sChar
bPrevWasUCase = True
Else
sRet = sRet & sChar
bPrevWasUCase = False
End If
Next i

AddSpaces= sRet
End Function`
This comment was minimized by the moderator on the site
Hello friend,

Thanks for your share. I tried your VBA code, but it doesn't work. Our VBA code can handle the non-english text. I have test the french text and spaces are successfully inserted before the capital letters.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Hello

First thanks a lot for your code example and the explanations. It works very well for my case.

I just have 1 Problem, some of the Strings contain words like URL, which should not be seperated.
Do you see a way to except for example "URL" from adding spaces?

Would be very nice if you can help. I tried already a while, but i dont know how to solve this..


Best regards
luca
This comment was minimized by the moderator on the site
hi wanna ask you if you found solution for you case, if you found solution please provide me with that
This comment was minimized by the moderator on the site
Hi,
Thanks for your comment and advice. I have sent your suggestion to the Kutools project team, I’m sure they’ll improve it soon.
This comment was minimized by the moderator on the site
Found a solution?
This comment was minimized by the moderator on the site
Hi there, your code works fantastic. Do you know how to adapt code 20140723 to work on multiple sheets? I would like to add spaces between capital letters throughout the entire workbook. Thanks!
This comment was minimized by the moderator on the site
i need a help in excel i want to find Uppercase in a cell. for example: Sagar Paul MBA 16:04 i want MBA to be highlighted
This comment was minimized by the moderator on the site
I hope you can see it and give it a trial. Sub Test() Dim Rg As Range, xCell As Range Dim i As Long Dim xChar As String Set Rg = Application.Selection For Each xCell In Rg For i = 1 To xCell.Characters.Count xChar = xCell.Characters(i, 1).Text If Asc(xChar) > 64 And Asc(xChar) < 91 Then xCell.Characters(i, 1).Font.Color = vbRed End If Next Next End Sub
There are no comments posted here yet
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations