2016-11-28 4 views
0

Haben Sie neue Daten zum Training mit Text zu Zeilen formatieren.Text zu Spalte ändern als Text zu Zeile

Normalerweise verwenden wir Texttrennzeichen in Excel, um die Daten aus einer Spalte zu teilen. Ich brauche das gleiche Feature in Reihe weise.

Beispiel Liste des Standorts in einer Spalte.

CHARLESTON, JACKSONVILLE, BALTIMORE, NEW YORK, NORFOLK, SAVANNAH 
CHARLESTON, JACKSONVILLE, BALTIMORE, NEW YORK, NORFOLK, SAVANNAH 
HOUSTON, MOBILE, NEW ORLEANS 
HOUSTON, MOBILE, NEW ORLEANS 
PORT EVERGLADES 

Erwartetes Ergebnis:

Source Data Erwartetes Ergebnis

CHARLESTON 
JACKSONVILLE 
BALTIMORE 
NEW YORK 
NORFOLK 
SAVANNAH 

Bitte helfen Sie mir mit einem VBA-Code für das gleiche.

Dank Sample

  • Beispieldatei aktualisiert:

Excel

+0

Sie könnten diese Zeilen einfach in ein Array aufteilen und auf das Arbeitsblatt drucken. Führen Sie es in einer Schleife aus, um jede Zeile in einer eigenen Spalte zu drucken. – Brian

+0

geteilt als normal und dann wieder aufheben? – xQbert

+2

Oder Sie können einfach 'Text to Columns' wie gewohnt verwenden und dann den Bereich und' Paste Special' >> 'Transpose' kopieren, um VBA vollständig zu vermeiden. :-) – Brian

Antwort

0

Sie dieses Sub verwenden können:

Sub TextToRows(txt As String, targetRng As Range) 
    Dim arr As Variant 

    arr = Split(Replace(txt, " ", ""), ",") 
    targetRng.Resize(UBound(arr) + 1).Value = Application.Transpose(arr) 
End Sub 

genannt werden von Ihrem Hauptcode als fo llows:

TextToRows Range("A1").Text, Range("B1") '<--| write the content of cell "A1" from cell "B1" downwards 
+0

Danke für Ihre Eingabe ........ Näher kommen wie nötig. Aktualisiert die Quelldaten und das Ergebnis gemeldet ... bitte help – Mike

+0

Ich gab Ihnen den Code, um die angeforderte _ "Text zu Spalte ändern als Text zu Zeile" _ Sie gebeten und gemäß Ihrem verknüpften Beispiel zu erfüllen. Vielleicht möchten Sie dann meine Antwort akzeptieren. Während für weitere Ausgaben sollten Sie einen neuen Beitrag veröffentlichen, der Ihre Codierungsbemühungen zeigt – user3598756

0

Versuchen Sie folgendes:

Option Explicit 

Public Sub TextToRows(MyRange As Range) 

Dim MyArray As Variant 
Dim r As Range 
Dim i As Integer 

i = 0 
For Each r In MyRange 
    MyArray = Split(WorksheetFunction.Trim(r), ", ") 
    Range("B1").Offset(0, i).Resize(UBound(MyArray) + 1, 1).Value = Application.Transpose(MyArray) 
    i = i + 1 
Next r 

End Sub 

Sub RunTest() 
    TextToRows Range("A1:A5") 
End Sub 

Es ist nur für Daten, die in den ersten fünf Zeilen der Spalte A und Druck auf Spalten B und darüber hinaus funktioniert. Aber Sie können es ändern. :-)