In questo articolo, creeremo una macro per delimitare verticalmente il testo in una cella in una colonna. Possiamo delimitare il testo nella cella in base al delimitatore. Il delimitatore può essere una virgola, uno spazio, una barra rovesciata ecc.
Per spiegare il funzionamento della macro, abbiamo preso l'URL come testo di esempio nella cella A10. La macro può essere eseguita facendo clic sul pulsante "Invia".
Dopo aver eseguito la macro, restituirà l'output nella colonna successiva. Il valore del testo nella cella è separato da più sottostringhe in più celle nella seconda colonna.
Spiegazione logica
Abbiamo creato una macro “texttocolumns” che svolge due compiti. Innanzitutto, delimita la stringa in A10 a più sottostringhe, in base al delimitatore. In questo esempio, abbiamo usato il trattino (-) come delimitatore. In secondo luogo, attraversa le sottostringhe generate da più colonne a una singola colonna.
Spiegazione del codice
Rng.texttocolumns Destinazione:=Rng.Offset(0, 1), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _
:="-"
Il codice sopra viene utilizzato per delimitare la stringa nell'intervallo "Rng". Destinazione specifica l'intervallo di posizioni in cui verrà visualizzato l'output. DataType specifica il tipo di delimitatore utilizzato. TextQualifier specifica il carattere utilizzato per il qualificatore di testo. OtherChar specifica il carattere utilizzato come delimitatore.
Si prega di seguire sotto per il codice
Sub texttocolumns() 'Dichiarazione delle variabili Dim StartRow, i, LastCol As Long Dim Rng As Range 'disabilitazione degli avvisi di visualizzazione Application.DisplayAlerts = False 'Inizializzazione della variabile StartRow = 10 Set Rng = Range("A10") 'Separazione del testo in base sul delimitatore Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _ :="-" 'Trovare la colonna numero di celle che contengono l'ultima stringa dopo aver delimitato LastCol = Rng.End(xlToRight).Column 'dispone il testo in colonne in righe For i = 2 To LastCol Cells(10, i).Cut Cells(StartRow, 2) StartRow = StartRow + 1 Avanti i End Sub
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook. Inoltre, puoi seguirci su Twitter e Facebook.
Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici al sito di posta elettronica