In dit artikel zullen we een macro maken om tekst in een cel verticaal af te bakenen tot kolom. We kunnen de tekst in de cel afbakenen op basis van het scheidingsteken. Scheidingsteken kan een komma, spatie, backslash enz. zijn.
Om de werking van de macro uit te leggen, hebben we URL als voorbeeldtekst genomen in cel A10. Macro kan worden uitgevoerd door op de knop "Verzenden" te klikken.
Nadat de macro is uitgevoerd, wordt de uitvoer in de volgende kolom geretourneerd. Tekstwaarde in de cel wordt gescheiden in meerdere subtekenreeksen in meerdere cellen in de tweede kolom.
Logische uitleg
We hebben een macro "texttocolumns" gemaakt die twee taken uitvoert. Ten eerste begrenst het de string in de A10 tot meerdere substrings, op basis van het scheidingsteken. In dit voorbeeld hebben we streepje (-) als scheidingsteken gebruikt. Ten tweede doorloopt het gegenereerde subreeksen van meerdere kolommen naar een enkele kolom.
Code uitleg
Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _
:="-"
Bovenstaande code wordt gebruikt om de tekenreeks in het bereik "Rng" af te bakenen. Bestemming specificeert het locatiebereik waar de uitvoer zal verschijnen. DataType specificeert het type scheidingsteken dat wordt gebruikt. TextQualifier specificeert het teken dat wordt gebruikt voor tekstkwalificatie. OtherChar specificeert het teken dat als scheidingsteken wordt gebruikt.
Volg hieronder voor de code:
Sub texttocolumns() 'Variabelen Dim StartRow, i, LastCol As Long Dim Rng As Range declareren' de weergavewaarschuwingen uitschakelen Application.DisplayAlerts = False 'De variabele initialiseren StartRow = 10 Set Rng = Range("A10") 'De tekst scheiden op het scheidingsteken Rng.texttocolumns Destination:=Rng.Offset(0, 1), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Other:=True, OtherChar _ :="-" 'De kolom vinden aantal cellen met de laatste tekenreeks na scheiding LastCol = Rng.End(xlToRight).Column 'rangschikken van de tekst in kolommen naar rijen For i = 2 To LastCol Cells(10, i).Cut Cells(StartRow, 2) StartRow = StartRow + 1 Volgende i Einde Sub
Als je deze blog leuk vond, deel hem dan met je vrienden op Facebook. Ook kunt u ons volgen op Twitter en Facebook.
We horen graag van u, laat ons weten hoe we ons werk kunnen verbeteren en voor u kunnen verbeteren. Schrijf ons op de e-mailsite