Excel VBA: come sostituire il testo in una stringa (5 modi efficaci)

  • Condividi Questo
Hugh West

Se siete alla ricerca di modi per sostituire il testo in una stringa utilizzando Excel VBA La sostituzione di una determinata parte di testo può far risparmiare molto tempo nel digitare nuovamente le stringhe di testo. Entriamo quindi nell'articolo principale per conoscere i dettagli di questa operazione di sostituzione.

Scarica il libro di lavoro

Sostituire il testo in String.xlsm

5 modi per sostituire il testo in una stringa utilizzando Excel VBA

Abbiamo il seguente set di dati contenente alcuni record dei dipendenti con i loro ID e-mail. Il nostro compito è quello di sostituire i vecchi nomi di dominio con quelli nuovi. Nei metodi seguenti, lavoreremo con questo set di dati insieme ad alcune stringhe di testo casuali per sostituire il testo desiderato con VBA codici.

Abbiamo utilizzato Microsoft Excel 365 è possibile utilizzare qualsiasi altra versione in base alle proprie esigenze.

Metodo-01: Sostituire il testo a partire dalla posizione n-esima di una stringa casuale

In questo caso, sostituiremo il testo in una stringa di testo casuale per diverse posizioni iniziali.

Passo-01 :

➤ Andare alla pagina Sviluppatore Scheda Codice Gruppo Visual Basic Opzione.

Poi, il Editor Visual Basic si aprirà.

➤ Andare alla pagina Inserire Scheda Modulo Opzione.

Successivamente, un Modulo verrà creato.

Passo-02 :

➤ Scrivere il seguente codice

 Sub sostituzione_di_testo_1() Dim full_txt_str, updated_str As String full_txt_str = "Cento auto cinquanta auto dieci auto" updated_str = Replace(full_txt_str, "Auto", "Biciclette", 1) MsgBox updated_str End Sub 

Qui abbiamo dichiarato full_txt_str e stringa_aggiornata come Stringa e poi assegnato full_txt_str a una stringa di testo casuale. "Cento Auto Cinquanta Auto Dieci Auto" . Poi il VBA Funzione REPLACE viene utilizzato per sostituire il file Auto parte di questa stringa casuale con Biciclette e 1 viene utilizzato per avviare la sostituzione dalla posizione 1 di questa stringa. Infine, abbiamo assegnato questa nuova stringa di testo a stringa_aggiornata e con una casella di messaggio ( MsgBox ) vedremo il risultato.

➤ Stampa F5 .

Poi un casella di messaggio apparirà la nuova stringa di testo con il testo sostituito Biciclette .

Per eseguire il processo di sostituzione dalla seconda istanza di Auto utilizzare il seguente codice.

 Sub sostituzione_di_testo_1() Dim full_txt_str, updated_str As String full_txt_str = "Cento auto cinquanta auto dieci auto" updated_str = Replace(full_txt_str, "Auto", "Biciclette", 14) MsgBox updated_str End Sub 

In questo caso, abbiamo utilizzato la posizione di partenza come 14 perché vogliamo che la parte della stringa dopo Cento Auto e sostituire il Auto qui.

Dopo corsa il codice, avremo il seguente casella di messaggio con il stringa di testo a partire dal testo Cinquanta e con Biciclette nella posizione di Auto .

Per avere solo l'ultima porzione di questa stringa, applichiamo il seguente codice.

 Sub sostituzione_di_testo_1() Dim full_txt_str, updated_str As String full_txt_str = "Cento auto cinquanta auto dieci auto" updated_str = Replace(full_txt_str, "Auto", "Biciclette", 25) MsgBox updated_str End Sub 

In questo caso, abbiamo utilizzato la posizione di partenza come 25 perché vogliamo che la parte della stringa dopo Cinquanta auto e sostituire il Auto con Biciclette qui.

Infine, avremo un casella di messaggio con la parte di stringa desiderata che ha la sostituzione con Biciclette .

Leggi tutto: Excel VBA: sostituire un carattere in una stringa in base alla posizione (4 modi efficaci)

Metodo-02: Sostituire il testo per la n-esima occorrenza di una stringa casuale usando Excel VBA

In questa sezione, sostituiremo un testo in una stringa casuale per un diverso numero di occorrenze con l'aiuto di un VBA codice.

Passi :

➤ Segui Passo-01 di Metodo-1 .

➤ Digitare il seguente codice.

 Sub sostituzione_di_testo_2() Dim full_txt_str, updated_str As String full_txt_str = "Cento auto cinquanta auto dieci auto" updated_str = Replace(full_txt_str, "Auto", "Biciclette", 1, 1) MsgBox updated_str End Sub 

Qui abbiamo dichiarato full_txt_str e stringa_aggiornata come Stringa e poi assegnato full_txt_str a una stringa di testo casuale. "Cento Auto Cinquanta Auto Dieci Auto" Dopo di che, il Funzione REPLACE viene utilizzato per sostituire il file Auto parte di questa stringa casuale con Biciclette , 1 viene utilizzato per avviare la sostituzione dalla posizione 1 di questa stringa e il valore finale 1 è per il conteggio del numero di occorrenze. Utilizzando 1 come numero di conteggio, stiamo definendo la sostituzione del primo Auto Infine, abbiamo assegnato questa nuova stringa di testo a stringa_aggiornata e con una casella di messaggio ( MsgBox ) vedremo il risultato.

➤ Stampa F5 .

In seguito, un casella di messaggio apparirà con il nuovo testo Biciclette nel prima posizione di Auto solo.

➤ Per sostituire le prime due istanze di Auto con Biciclette utilizzare il seguente codice.

 Sub sostituzione_di_testo_2() Dim full_txt_str, updated_str As String full_txt_str = "Cento auto cinquanta auto dieci auto" updated_str = Replace(full_txt_str, "Auto", "Biciclette", 1, 2) MsgBox updated_str End Sub 

Qui, 2 viene utilizzato come numero di conteggio per sostituire le prime due istanze di Auto con Biciclette .

Dopo aver eseguito il codice, si avrà la sostituzione dei primi due testi Auto con Biciclette .

➤ Applicare il seguente codice per sostituire tutte le istanze del testo Auto .

 Sub sostituzione_di_testo_2() Dim full_txt_str, updated_str As String full_txt_str = "Cento auto cinquanta auto dieci auto" updated_str = Replace(full_txt_str, "Auto", "Biciclette", 1, 3) MsgBox updated_str End Sub 

Qui, l'ultimo argomento del metodo Funzione REPLACE è 3 che è il numero di conteggio che indica la sostituzione di tutti i Auto con Biciclette nella stringa di testo.

➤ Stampa F5 .

In seguito, avremo quanto segue casella di messaggio con il testo sostituito Biciclette nella stringa.

Letture simili

  • Come sostituire il testo con il ritorno a capo in Excel (4 approcci semplici)
  • Excel VBA: come trovare e sostituire il testo in un documento Word
  • Come sostituire il testo dopo un carattere specifico in Excel (3 metodi)
  • Sostituire il testo di una cella in base a una condizione in Excel (5 metodi semplici)

Metodo-03: Sostituire il testo di una stringa casuale con InputBox

In questo caso, sostituiremo un certo testo di una stringa casuale con un testo che sarà definito dall'utente con l'aiuto del comando Funzione VBA InputBox .

Passi :

➤ Segui Passo-01 di Metodo-1 .

➤ Digitare il seguente codice.

 Sub sostituzione_di_testo_3() Dim full_txt_str, new_txt, updated_str As String full_txt_str = "Cento auto cinquanta auto dieci auto" new_txt = InputBox("Scrivi il nuovo testo da sostituire") updated_str = Replace(full_txt_str, "Auto", new_txt) MsgBox updated_str End Sub 

Qui abbiamo dichiarato full_txt_str , nuovo_testo , e stringa_aggiornata come Stringa e poi assegnato full_txt_str a una stringa di testo casuale. "Cento Auto Cinquanta Auto Dieci Auto" Per avere l'input definito dall'utente come testo da sostituire con l'opzione Auto nella stringa casuale, abbiamo utilizzato il metodo Funzione InputBox e poi assegnare questo valore a nuovo_testo . Poi il Funzione REPLACE viene utilizzato per sostituire il file Auto parte di questa stringa casuale con nuovo_testo Infine, abbiamo assegnato questa nuova stringa di testo a stringa_aggiornata e con una casella di messaggio ( MsgBox ) vedremo il risultato.

➤ Stampa F5 .

Successivamente, un Casella di input dove è possibile inserire qualsiasi parte di testo che si desidera inserire nella nuova stringa.

Tipo Biciclette o qualsiasi altro testo desiderato e poi premere OK .

Infine, si otterrà il seguente risultato con la nuova stringa di testo avente il nuovo testo Biciclette nella posizione di Auto .

Per saperne di più: Come sostituire il testo in una formula di Excel (7 modi semplici)

Metodo-04: Sostituire il testo in un intervallo di stringhe con Excel VBA

In questo caso, si sostituisce il gmail parte degli id delle email con i domini nel file Nuovo dominio e per accumulare i nuovi ID e-mail abbiamo inserito una nuova colonna; Indirizzo e-mail finale .

Passi :

➤ Segui Passo-01 di Metodo-1 .

➤ Digitare il seguente codice.

 Sub sostituzione_di_testo_4() For i = 4 To 13 If InStr(1, Cells(i, 4).Value, "gmail")> 0 Then Cells(i, 6).Value = Replace(Cells(i, 4).Value, "gmail", Cells(i, 5).Value) Else Cells(i, 6).Value = "" End If Next i End Sub 

In questo caso, abbiamo utilizzato il Ciclo FOR per eseguire l'operazione da Fila 4 a Riga 13 Con l'aiuto del SE-QUANDO abbiamo controllato se gli id delle email di Colonna D contenere "gmail" o meno, e per soddisfare questo criterio il "gmail" La parte degli id delle email sarà sostituita con i nuovi domini di Colonna E per creare i nuovi id in Colonna F Altrimenti si avrà uno spazio vuoto nelle celle corrispondenti di Colonna F .

➤ Stampa F5 .

Quindi, si avranno i nuovi id di posta elettronica nella cartella Indirizzo e-mail finale colonna.

Ulteriori informazioni: Excel VBA per trovare e sostituire il testo in una colonna (2 esempi)

Metodo-05: Sostituire il testo in un intervallo di stringhe con l'input dell'utente per trovare il testo

È possibile sostituire i seguenti id di posta elettronica con i nuovi domini e dichiarare cosa sostituire negli id precedenti.

Passi :

➤ Segui Passo-01 di Metodo-1 .

➤ Digitare il seguente codice.

 Sub sostituzione_di_testo_5() Dim partial_text As String partial_text = Application.InputBox("Inserisci la stringa da sostituire") For i = 4 To 13 If InStr(1, Cells(i, 4).Value, LCase(partial_text))> 0 Then Cells(i, 6).Value = Replace(Cells(i, 4).Value, LCase(partial_text), Cells(i, 5).Value) Else Cells(i, 6).Value = "" End If Next i End Sub 

Qui abbiamo definito testo parziale come un Stringa e poi assegnarlo a una stringa che verrà fornita da un utente attraverso il metodo Casella di input .

Successivamente, abbiamo utilizzato il Ciclo FOR per eseguire l'operazione da Fila 4 a Riga 13 e utilizzando l'opzione SE-QUANDO abbiamo controllato se gli id delle email di Colonna D contenere "gmail" E per soddisfare questo criterio il "gmail" La parte degli id delle email sarà sostituita con i nuovi domini di Colonna E per creare i nuovi id in Colonna F Altrimenti si avrà uno spazio vuoto nelle celle corrispondenti di Colonna F .

➤ Stampa F5 .

Dopodiché, si avrà un Casella di input dove si deve digitare il testo che si vuole ricercare nell'intervallo di id email (qui abbiamo inserito gmail ) e poi premere OK .

Infine, abbiamo i nostri id di posta elettronica aggiornati nella cartella Indirizzo e-mail finale colonna.

Ulteriori informazioni: Trovare e sostituire un testo in un intervallo con Excel VBA (Macro e UserForm)

Sezione pratica

Per fare pratica da soli, abbiamo messo a disposizione un Pratica come di seguito in un foglio chiamato Pratica . per favore, fatelo da soli.

Conclusione

In questo articolo abbiamo cercato di illustrare i modi per sostituire il testo in una stringa utilizzando Excel. VBA Se avete suggerimenti o domande, non esitate a condividerli nella sezione dei commenti.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.