Excel ha già una funzione del foglio di lavoro TRIM che è possibile utilizzare per eliminare gli spazi iniziali, finali e extra tra parole/stringhe.
C'è anche una funzione TRIM in VBA (e fa esattamente la stessa cosa: rimuove gli spazi extra).
Perché abbiamo bisogno di una funzione TRIM anche in VBA?
Domanda giusta!
Mentre puoi lavorare con la funzione TRIM incorporata nei fogli di lavoro di Excel per eliminare gli spazi. in alcuni casi, potrebbe essere necessario farlo utilizzando VBA.
Questo potrebbe essere parte di un codice più grande.
Sintassi della funzione VBA TRIM
TRIM(Stringa)
"Stringa" è l'argomento che può essere una stringa di testo o una variabile che contiene una stringa di testo.
Impariamo come utilizzare la funzione VBA TRIM con un paio di esempi.
Esempio 1 - Visualizzazione del risultato in una finestra di messaggio
Supponiamo di avere il seguente testo nella cella A1
Nota che ci sono spazi prima e dopo la frase.
Il codice seguente prenderà questa frase e mostrerà il risultato dopo aver tagliato gli spazi extra
Sub TrimExample1() MsgBox Trim(Range("A1")) End Sub
Ad esempio, supponi di avere il seguente testo nella cella A1 (con spazi extra tra le parole):
Se utilizzo il codice VBA sopra, mostrerà una finestra di messaggio come mostrato di seguito:
Come puoi vedere nel risultato della finestra del messaggio, gli spazi extra tra le parole non vengono rimossi dalla funzione VBA TRIM.
Allora qual è l'alternativa?
Se vuoi rimuovere gli spazi iniziali, finali e doppi tra le parole, è meglio usare il seguente codice:
Sub TrimExample1() MsgBox WorksheetFunction.Trim(Range("A1")) End Sub
Il codice sopra utilizza la funzione TRIM del foglio di lavoro (invece di utilizzare la funzione TRIM in VBA).
Nota: la funzione VBA Trim non rimuove i caratteri non di spaziatura, come le nuove righe (vbNewLine, vbCrLf) eccetera.
Esempio 2 - Rimuovere rapidamente gli spazi iniziali e finali da un intervallo di celle
Supponiamo di avere un set di dati come mostrato di seguito dove ci sono spazi iniziali e finali:
Puoi utilizzare il codice seguente per pulire istantaneamente questi dati e rimuovere tutti gli spazi iniziali e finali:
Sub TrimExample1() Dim Rng As Range Set Rng = Selezione per ogni cella in Rng Cell.Value = Trim(Cell) Next Cell End Sub
Il codice precedente passa attraverso tutte le celle della selezione e rimuove gli spazi iniziali e finali.
Potrebbero piacerti anche i seguenti tutorial Excel/VBA:
- 10 modi per pulire i dati in Excel
- Funzione di suddivisione VBA di Excel.
- Funzione Excel VBA InStr.
- Funzione VBA LCase.
- Funzione VBA UCase.
- Creazione di una funzione definita dall'utente (UDF) in Excel VBA.