Avgrense teksten i en celle til kolonne vertikalt

Anonim

I denne artikkelen vil vi lage en makro for å avgrense tekst i en celle til kolonne vertikalt. Vi kan avgrense teksten i cellen basert på skilletegnet. Skilletegn kan enten være komma, mellomrom, omvendt skråstrek etc.

For å forklare hvordan makroen fungerer, har vi tatt URL som eksempeltekst i celle A10. Makro kan kjøres ved å klikke på "Send" -knappen.

Etter å ha utført makroen, vil den returnere utdata i neste kolonne. Tekstverdien i cellen er atskilt med flere delstrenger i flere celler i den andre kolonnen.

Logisk forklaring

Vi har opprettet en makro "tekst -kolonner" som utfører to oppgaver. For det første avgrenser den strengen i A10 til flere delstrenger, basert på skilletegnet. I dette eksemplet har vi brukt bindestrek (-) som skilletegn. For det andre krysser den genererte delstrenger fra flere kolonner til en enkelt kolonne.

Kode forklaring

Rng.texttocolumns Destination: = Rng.Offset (0, 1), DataType: = xlDelimited, _

TextQualifier: = xlDoubleQuote, ConsecutiveDelimiter: = True, Other: = True, OtherChar _

:="-"

Koden ovenfor brukes til å avgrense strengen i området "Rng". Destinasjon angir stedsområdet der utdataene skal vises. DataType angir hvilken type skilletegn som brukes. TextQualifier angir tegnet som brukes for tekstkvalifisering. OtherChar spesifiserer tegnet som brukes som skilletegn.

Følg koden nedenfor

 Undertekstkolonner () 'Deklarere variabler Dim StartRow, i, LastCol As Long Dim Rng As Range' deaktiverer visningsvarslene Application.DisplayAlerts = False 'Initialiserer variabelen StartRow = 10 Set Rng = Range ("A10")' Deler teksten ut på avgrenseren Rng.texttocolumns Destination: = Rng.Offset (0, 1), DataType: = xlDelimited, _ TextQualifier: = xlDoubleQuote, ConsecutDelimiter: = True, Other: = True, OtherChar _: = "-" 'Finner kolonnen antall celler som inneholder den siste strengen etter avgrensning av LastCol = Rng.End (xlToRight) .Column 'ordner teksten i kolonner til rader For i = 2 til LastCol -celler (10, i) .Cut Cells (StartRow, 2) StartRow = StartRow + 1 Neste i End Sub 

Hvis du likte denne bloggen, del den med vennene dine på Facebook. Du kan også følge oss på Twitter og Facebook.

Vi vil gjerne høre fra deg, gi oss beskjed om hvordan vi kan forbedre arbeidet vårt og gjøre det bedre for deg. Skriv til oss på e -post