在excel-vba上使用Split函数与Cells,Range,Rows.count和xlup

时间:2015-10-06 02:19:02

标签: excel vba excel-vba

此代码是否有效?

lr = RD.Cells(Rows.Count, 8).End(xlUp).Row
wArray() = Split(RD.Range(Cells(2, 8), Cells(Rows.Count, 8).End(xlUp).Row))
RD.Cells(2, 8).Value = wArray(0)
RD.Cells(2, 9).Value = wArray(1)

我希望代码遍历范围中的每个单元格并拆分该范围内的数据,并将第二个字符串放在旁边的单元格上。例如,我有一个A1:A15单元格范围,单元格值为" 01/01/2015 09:43 GMT",在运行代码后,我希望&#34 ; 01/01/2015"将保持在A1:A15的范围内,而#34; 09:43"将移至单元格范围B1:B15。我通过在Split(RD.Cells)函数上定义一个单元格来尝试相同的代码,并且它工作得很漂亮。现在我需要它继续下一行,只要该行有输入。

2 个答案:

答案 0 :(得分:2)

您是否希望遍历所有行而不是仅仅1行?如果是这样,你可以试试这个。

lr = RD.Cells(Rows.Count, 8).End(xlUp).Row
For i = 2 to lr
    wArray() = Split(RD.Range(Cells(i, 8))
    RD.Cells(i, 8).Value = wArray(0)
    RD.Cells(i, 9).Value = wArray(1)
Next i 

答案 1 :(得分:1)

不使用循环

With RD.UsedRange
    .Columns(1).TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, _
                              FieldInfo:=Array(Array(0, 1), Array(11, 1))
End With