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”.

ArrowSampleData

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.

ArrowAfterRunningMacro

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]