0

使用文本到行格式来锻炼一些新数据。

通常,我们将在 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 代码。

感谢 样品

  • 示例文件更新:

Excel

4

2 回答 2

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 列及以后。但是你可以修改它。:-)

于 2016-11-28T17:49:00.763 回答
0

你可以使用这个子:

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 
于 2016-11-28T16:56:28.267 回答