2015-10-06 244 views
1

此代码是否工作?对excel-vba使用细胞,范围,Rows.count和xlup的分割函数

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”,在我运行代码之后,我预计“01/01/2015”将保持在范围A1 :A15,而“09:43”将移至单元格区域B1:B15。我通过在Split(RD.Cells)函数上定义单个单元来尝试相同的代码,并且它的工作非常好。现在我需要它继续下一行,只要该行有输入即可。

回答

2

您是否想要遍历所有行而不是仅循环一行?如果是这样,你可以试试这个。

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 
+0

工作!谢谢! – synthaxe

1

,不使用循环

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