Vba: come estrarre il testo tra due caratteri
È possibile creare la seguente funzione personalizzata in VBA per estrarre il testo tra due caratteri specifici:
Function ExtractBetween(this_text, start_char, end_char) StartPosition = InStr(this_text, start_char) EndPosition = InStr(this_text, end_char) ExtractBetween = Mid(this_text, StartPosition + 1, EndPosition - StartPosition - 1) End Function
È quindi possibile utilizzare questa funzione per estrarre il testo tra due caratteri specifici in un carattere specifico in Excel.
L’esempio seguente mostra come utilizzare questa funzione nella pratica.
Esempio: utilizzo di VBA per estrarre il testo tra due caratteri
Supponiamo di avere il seguente set di dati in Excel contenente i valori ID e le vendite totali di vari prodotti in un’azienda:
Supponiamo di voler utilizzare VBA per estrarre il testo tra parentesi per ogni cella nella colonna A e restituire i risultati nella colonna C.
Possiamo creare la seguente funzione per fare ciò:
Function ExtractBetween(this_text, start_char, end_char) StartPosition = InStr(this_text, start_char) EndPosition = InStr(this_text, end_char) ExtractBetween = Mid(this_text, StartPosition + 1, EndPosition - StartPosition - 1) End Function
Possiamo quindi digitare la seguente formula nella cella C2 per estrarre il testo tra parentesi per il testo nella cella A2 :
=ExtractBetween( A2 , "(", ")")
Possiamo quindi fare clic e trascinare questa formula su ciascuna cella rimanente nella colonna C:
La colonna C ora mostra il testo tra parentesi per ogni cella corrispondente nella colonna A.
Nota : questa formula funziona utilizzando la funzione Instr in VBA per estrarre la posizione di caratteri iniziali e finali specifici, quindi utilizzando la funzione Mid per restituire tutto il testo tra questi due caratteri.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni utilizzando VBA:
VBA: come contare le occorrenze di caratteri in una stringa
VBA: come verificare se una stringa contiene un’altra stringa
VBA: come contare le celle con testo specifico