在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) 

我希望代码遍历范围中的每个单元格,并将该范围内的数据拆分,并将第二个string放在其旁边的单元格中。 例如,我有一个A1:A15单元格范围,其单元格值为“01/01/2015 09:43 GMT”,在运行代码之后,我预计“01/01/2015”将保持在范围A1:A15,而“09:43”将移动到单元格范围B1:B15 。 我已经通过在Split(RD.Cells)函数上定义单个单元格来尝试相同的代码,并且它工作得非常好。 现在我需要它继续下一行,只要该行有一个input。

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

 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 

不使用循环

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