使用文本到行格式来训练一些新数据。
在正常情况下,我们将使用excel中的文本分隔符来分割一列中的数据。 我需要行中的相同功能。
示例 列中的位置列表。
CHARLESTON, JACKSONVILLE, BALTIMORE, NEW YORK, NORFOLK, SAVANNAH
CHARLESTON, JACKSONVILLE, BALTIMORE, NEW YORK, NORFOLK, SAVANNAH
HOUSTON, MOBILE, NEW ORLEANS
HOUSTON, MOBILE, NEW ORLEANS
PORT EVERGLADES
预期结果:
源数据预期结果
CHARLESTON
JACKSONVILLE
BALTIMORE
NEW YORK
NORFOLK
SAVANNAH
请帮助我使用相同的vba代码。
由于 Sample
答案 0 :(得分:0)
你可以使用这个Sub:
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
从主代码中调用如下:
TextToRows Range("A1").Text, Range("B1") '<--| write the content of cell "A1" from cell "B1" downwards
答案 1 :(得分:0)
试试这个:
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
它仅适用于A列前五行的数据,并打印到B列及更高的列。但你可以修改它。 : - )