VBA Mid Function - Estrai i caratteri dal centro della stringa

Sommario

Questo tutorial dimostrerà come utilizzare la funzione Mid VBA per estrarre i caratteri dal centro di una stringa di testo.

Funzione media

Funzione intermedia Ottieni n caratteri

La funzione VBA Mid restituisce n caratteri da una stringa a partire dalla posizione m:

123456789 Sub MidEsempio_1()MsgBox Mid("ABCDEFGHI", 4, 1) 'Il risultato è: "D"MsgBox Mid("ABCDEFGHI", 4, 2) 'Il risultato è: "DE"MsgBox Mid("ABCDEFGHI", 4, 50) 'Il risultato è: "DEFGHI"MsgBox Mid("ABCDEFG hI", 6, 1) 'Il risultato è: "F"MsgBox Mid("ABCDEFG hI", 6, 2) 'Il risultato è: "FG"MsgBox Mid("ABCDEFG hI", 6, 4) 'Il risultato è: "FG h"Fine sottotitolo

Mid Function Ottieni n caratteri in una variabile

Come mostrato sopra, puoi definire una stringa semplicemente inserendo del testo racchiuso tra virgolette. Ma la funzione MID funzionerà anche con variabili stringa. Questi esempi estrarranno n caratteri da una stringa a partire dalla posizione m.

12345678 Sub MidEsempio_2()Dim StrEx As String 'Definisci una variabile stringaStrEx = "ABCDEFGHI"MsgBox Mid(StrEx, 2, 1) 'Il risultato è: "B"MsgBox Mid(StrEx, 2, 2) 'Il risultato è: "BC"MsgBox Mid(StrEx, 2, 50) 'Il risultato è: "BCDEFGHI"Fine sottotitolo

Mid Function Ottieni n caratteri da una cella

Le stringhe possono essere definite nel codice VBA ma puoi anche utilizzare i valori delle celle. Leggi il valore di una cella, mantienilo in una variabile stringa ed estrai n caratteri dal valore della cella del foglio di lavoro a partire dalla posizione m.

1234567891011 Sub MidEsempio_3()Dim StrEx As String 'Definisci una variabile stringa'Leggi il valore della cella A1 nel foglio di lavoro Foglio1StrEx = ThisWorkbook.Worksheets("Foglio1").Intervallo("A1").Valore'Per questo esempio il valore della cella A1 è "Che la Forza sia con te"MsgBox Mid(StrEx, 4, 6) 'Il risultato è: " la F" (notare lo spazio all'inizio)MsgBox Mid(StrEx, 2, 8) 'Il risultato è: "ay the F"MsgBox Mid(StrEx, 3, 4) 'Il risultato è: "y th"Fine sottotitolo

Funzione centrale Sostituisci n caratteri

Negli esempi sopra, la funzione Mid non ha modificato la stringa originale. Ne ha restituito una parte, lasciando intatta la stringa originale. La funzione Mid può essere utilizzata per sostituire i caratteri in una stringa.

12345678910111213141516171819202122 Sub MidEsempio_4()Dim StrEx As String 'Definisci una variabile stringaSub MidEsempio_4()Dim StrEx As String 'Definisci una variabile stringaStrEx = "Che la Forza sia con te"Mid(StrEx, 5, 1) = "VWXYZ"MsgBox StrEx 'Il risultato è: "Che Vhe Horce sia con te""Mid Function ha trovato la posizione 5 e ha sostituito 1 carattere nella stringa originale"StrEx = "Che la Forza sia con te"Mid(StrEx, 5, 3) = "VWXYZ"MsgBox StrEx 'Il risultato è: "Che VWX Horce sia con te""Mid Function ha trovato la posizione 5 e ha sostituito 3 caratteri nella stringa originale"StrEx = "Che la Forza sia con te"Mid(StrEx, 5, 8) = "VWXYZ"MsgBox StrEx 'Il risultato è: "Che VWXYZorce sia con te"'Mid Function ha trovato la posizione 5 e ha provato a sostituire 8 caratteri.'"VWXYZ" ha solo 5 caratteri, quindi solo 5 caratteri sono stati sostituiti.Fine sottotitolo

Mid Function Estrai la seconda parola da una frase

Possiamo usare la funzione VBA Mid con la funzione VBA Instr per ottenere la seconda parola in un testo.

La funzione VBA InStr può restituire la posizione di un carattere all'interno del testo.

1 InStr("Due parole", " ") 'Il risultato è 4

Possiamo usare InStr per trovare il primo spazio, quindi possiamo usare nuovamente InStr iniziando la ricerca dopo il primo spazio per trovare il secondo spazio nel testo. Infine, possiamo usare la funzione Mid per estrarre la parola perché conosciamo la posizione iniziale della seconda parola e la sua lunghezza (la differenza tra le posizioni dei due spazi).

12345678910111213141516171819202122232425 Sub MidEsempio_5()Dim StrEx As String 'Definisci una variabile stringaDim StartPos As IntegerDim EndPos As IntegerDim SecondWord As StringStrEx = "James Earl Jones è un attore"StartPos = InStr(StrEx, " ")'Il risultato è 6'Trova la posizione del primo spazioEndPos = InStr(StartPos + 1, StrEx, " ")"Il risultato è 11"'Trova la posizione del secondo spazio avviando la ricerca dopo il primo spazioSecondWord = Mid(StrEx, StartPos + 1, EndPos - StartPos - 1)'Mid estrae i caratteri che iniziano dopo il primo spazio (StartPos +1)'Mid usa anche la lunghezza della seconda parola.'Questa è la differenza tra le posizioni degli spazi -1MsgBox SecondWord"Il risultato è Earl"Fine sottotitolo
wave wave wave wave wave