Questo tutorial dimostrerà come utilizzare la funzione Sostituisci VBA per sostituire le stringhe di testo.
Sostituisci funzione
La funzione VBA Replace restituisce una stringa, con le sostituzioni effettuate. Con l'utilizzo di parametri facoltativi, la nuova stringa può iniziare nella posizione specificata da start e termina alla fine della stringa originale.
VBA Sostituisci Sostituisci una sottostringa
La funzione VBA Replace può essere utilizzata per sostituire qualsiasi sottostringa trovata, in ogni parte trovata.
12345678910111213141516 | Sub SostituisciEsempio_1()MsgBox Replace("ABCABCABC", "A", "!")'Il risultato è: "!BC!BC!BC"MsgBox Replace("Mi piace il rosa, il rosso e il nero", "rosa", "viola")Il risultato è: "Mi piacciono il viola, il rosso e il nero"MsgBox Replace("A, B, C, A, B, C, A, B, C", ", ", ",")'Il risultato è: "ABCABCABC"MsgBox Replace("ABCABCABC", "ABC", "!")'Il risultato è: "!!!"MsgBox Replace("ABCABCABC", "ABc", "!")'Il risultato è: "ABCABCABC"MsgBox Replace("ABCABCABC", "ZBC", "!")'Il risultato è: "ABCABCABC"Fine sottotitolo |
VBA Sostituisci posizione iniziale
La funzione VBA Replace può essere utilizzata per sostituire qualsiasi sottostringa trovata, in ogni parte trovata. Se assegniamo una posizione di partenza, il risultato sarebbe la parte della stringa originale dopo quel punto di partenza.
12345678910111213 | Sub SostituisciEsempio_2()MsgBox Replace("ABCABCABC", "A", "123") 'Il risultato è: "123BC123BC123BC"MsgBox Replace("ABCABCABC", "A", "123", 2) 'Il risultato è: "BC123BC123BC"MsgBox Replace("ABCABCABC", "A", "123", 7) 'Il risultato è: "123BC"MsgBox Replace("ABCABCABC", "A", "123", 8) 'Il risultato è: "BC"MsgBox Replace("ABCABCABC", "ABC", "!@") 'Il risultato è: "!@!@!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 2) 'Il risultato è: "BC!@!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 6) 'Il risultato è: "C!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 7) 'Il risultato è: "!@"MsgBox Replace("ABCABCABC", "ABC", "!@", 8) 'Il risultato è: "BC"Fine sottotitolo |
VBA Sostituisci solo alcune occorrenze
La funzione VBA Replace può essere utilizzata per sostituire qualsiasi sottostringa trovata, in ogni parte trovata. Possiamo opzionalmente decidere quante occorrenze devono essere sostituite.
123456789101112 | Sub ReplaceExample_3()MsgBox Replace("ABCABCABC", "A", "12") 'Il risultato è: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", , 1) 'Il risultato è: "12BCABCABC"MsgBox Replace("ABCABCABC", "A", "12", , 2) 'Il risultato è: "12BC12BCABC"MsgBox Replace("ABCABCABC", "A", "12", , 3) 'Il risultato è: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", , 5) 'Il risultato è: "12BC12BC12BC"MsgBox Replace("ABCABCABC", "A", "12", 3, 1)'Il risultato è: "C12BCABC"'Abbiamo sostituito A con 12, 1 volta a partire dalla posizione 3 della stringa originale.Fine sottotitolo |
VBA Sostituisci la distinzione tra maiuscole e minuscole
La funzione di sostituzione VBA per impostazione predefinita fa distinzione tra maiuscole e minuscole. Puoi modificare questo comportamento in modo che non faccia distinzione tra maiuscole e minuscole utilizzando un parametro facoltativo (vbTextCompare). In tal caso, è necessario definire anche la posizione di partenza della ricerca.
12345678910111213 | Sub ReplaceExample_4()MsgBox Replace("ABcABCABc", "ABc", "12")'Il risultato è: "12ABC12"MsgBox Replace("ABcABCABc", "ABc", "12", , , vbTextCompare)'Il risultato è: "121212"'Quando usiamo vbTextCompare dobbiamo aggiungere gli altri 2 argomenti facoltativi:'inizia e contaMsgBox Replace("ABcABCABcABc", "ABc", "12", 3, 1)'Il risultato è: "cABC12ABc"'Partito dalla posizione 3 e sostituito ABC solo 1 volta.Fine sottotitolo |
Puoi anche eseguire una sostituzione senza distinzione tra maiuscole e minuscole, aggiungendo l'opzione Confronta testo nella parte superiore del modulo:
1 | Opzione Confronta testo |
VBA Sostituisci le virgolette doppie
La funzione VBA Replace può sostituire il carattere di virgolette doppie utilizzato per delimitare l'inizio e la fine di una stringa.
La funzione VBA Chr può restituire un carattere dal suo numero nel set di caratteri.
1 | MsgBox Chr(34) 'Il risultato è: " |
o
1 | MsgBox Chr(64) 'Il risultato è: @ |
Le virgolette doppie possono essere utilizzate all'interno della funzione di sostituzione VBA utilizzando """" o la funzione VBA Chr(34).
12345678910111213 | Sub ReplaceExample_5()Dim StrEx As StringStrEx = "AB""AB"""MsgBox StrEx 'Il risultato è: AB"AB"MsgBox Replace(StrEx, Chr(34), "12")"Il risultato è: AB12AB12"MsgBox Replace(StrEx, """", "DQ")'Il risultato è: "ABDQABDQ"Fine sottotitolo |
VBA Sostituisci la linea di interruzione nella cella
La funzione VBA Replace può trovare il carattere speciale della linea di interruzione in una cella e rimuoverlo o sostituirlo con uno spazio. Il carattere speciale della linea di interruzione può essere inserito in una cella utilizzando la scorciatoia da tastiera Alt+Invio e può essere utilizzato nel codice VBA con il relativo numero di set di caratteri utilizzando la funzione VBA Chr(10).
1234567891011121314 | Sub ReplaceExample_6()Dim StrEx As String 'Definisci una variabile stringa"Leggi il valore della cella A2 nel foglio di lavoro Foglio1"StrEx = ThisWorkbook.Worksheets("Foglio1").Intervallo("A2").Valore'Il carattere della linea di interruzione immesso con Alt+Invio è Chr(10) ed è invisibile.'Questa riga di codice sostituisce quel carattere con uno spazioStrEx = Sostituisci(StrEx, Chr(10), " ")'Scrivi il valore sostituito nella cella B2 nel foglio di lavoro Foglio1ThisWorkbook.Worksheets("Foglio1").Intervallo("B2").Valore = StrExFine sottotitolo |