Delimitando il testo in una cella a colonna verticale
In questo articolo, creeremo una macro per delimitare il testo in una cella in colonna verticalmente. 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 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 esegue due operazioni.
In primo luogo, 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, Altro: = 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.
Segui sotto per il codice
Sub texttocolumns() 'Declaring variables Dim StartRow, i, LastCol As Long Dim Rng As Range 'disabling the display alerts Application.DisplayAlerts = False 'Initializing the variable StartRow = 10 Set Rng = Range("A10") 'Separting the text based on the delimiter Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _ :="-" 'Finding the column number of cell containing the last string after delimiting LastCol = Rng.End(xlToRight).Column 'arranging the text in columns to rows For i = 2 To LastCol Cells(10, i).Cut Cells(StartRow, 2) StartRow = StartRow + 1 Next i End Sub
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]