Excel分割string循环

我有4个不同的范围。 我需要分割这些范围的内容。 所以细胞含有; 汤姆杰里错误兔宝宝杰克斯派洛鲍勃。 我想把它分成7个不同的单元格。 我已经在互联网上看了,并已经发现如何执行这样的分裂与下面的代码。

Dim text As String Dim a As Integer Dim name As Variant text = ActiveCell.Value name = Split(text, " ") For a = 0 To UBound(name) Cells(1, a + 1).Value = name(a) Next a 

我的问题是我需要这个内部循环,所以它会通过一个范围,说(“H1:H200”),这是我卡住了,我已经开始循环,但不能让分裂工作。 这是我的循环的开始:

 Dim rCell As Range Dim rRng As Range Set rRng = Range("H1:H200") For Each rCell In rRng.Cells 'split string here. 

任何帮助这个问题将不胜感激! 谢谢。

为什么重新发明轮子? 你可以使用TextToColumns 。 例如:

 Dim rCell As Range Dim rRng As Range Set rRng = Range("H1:H200") For Each rCell In rRng.Cells rCell.TextToColumns Destination:=rCell.Offset(0, 1), Space:=True Next 

你可以使用For中的For。 就像是,

 Dim txtStr As String Dim aCtr As Integer Dim nameVar() As String Dim rCell As Range Dim rRng As Range Set rRng = Range("H1:H200") For Each rCell In rRng.Cells txtStr = rCell.Value nameVar = Split(txtStr, " ") For aCtr = 0 To UBound(nameVar) Cells(1, aCtr + 1).Value = nameVar(aCtr) Next Next 

最后我自己来了这个结论,谢谢答案

 Dim bb As Integer Dim text As String Dim aa As Integer Dim name As Variant Dim cc As Range Dim rng As Range bb = 2 Set rng = Range("H2:H200") For Each cc In rng text = cc.Value name = Split(text, " ") For aa = 0 To UBound(name) 'Ubound finds the end of an array Cells(bb, aa + 1).Value = name(aa) Next aa 

bb = bb + 1下一步