Vbscript VBS将一列拆分为两列

Vbscript VBS将一列拆分为两列,vbscript,split,two-columns,Vbscript,Split,Two Columns,比如说,我有一个列,每个列都有名字,每个名字都在一个单元格中 First_Name_1 Last_Name_1 First_Name_2 Last_Name_2 First_Name_3 Last_Name_4 名字和姓氏用空格隔开。 如何使用VisualBasic脚本将此列拆分为两列,以便在一列中有First_Name,在其旁边的列中有Last_Name 已尝试此代码,但无法使其正常工作 objExcel.ActiveSheet.Columns(4).Sele

比如说,我有一个列,每个列都有名字,每个名字都在一个单元格中

    First_Name_1 Last_Name_1
    First_Name_2 Last_Name_2
    First_Name_3 Last_Name_4
名字和姓氏用空格隔开。 如何使用VisualBasic脚本将此列拆分为两列,以便在一列中有First_Name,在其旁边的列中有Last_Name

已尝试此代码,但无法使其正常工作

    objExcel.ActiveSheet.Columns(4).Select
    Do Until IsEmpty(ActiveCell)
    'Search for position of space within the cell
    SplitPoint = InStrRev(ActiveCell, " ", -1, vbTextCompare)
    'Put the last name in the column next to the source column
    ActiveCell.Offset(0, 1) = Trim(Left(ActiveCell, SplitPoint))
    'Replace the source column with the first name
    ActiveCell.Offset(0, 0) = Trim(Mid(ActiveCell, SplitPoint))
    Loop

提前谢谢

您没有移动到范围的下一个单元格

加:

ActiveCell.Offset(1,0).激活

我会添加一些东西来检查双空格(删除一个),没有空格和双名字或首字母缩写(Mary Lou Smith,John M.Lewis)


Ciao

Excel有一个
TextToColumns()
函数,只需一次函数调用即可完成所需的操作

objExcel.ActiveSheet.Columns(4).TextToColumns , , , , , , , True
使用显示的参数可能更有意义。您的数据以空格分隔,因此我们只需将第8个参数设置为
True
。其余部分可以忽略以接受默认值

objExcel.ActiveSheet.Columns(4).TextToColumns _
    , _        ' Destination (optional, defaults to source)
    , _        ' DataType (optional, defaults to xlDelimited)
    , _        ' TextQualifier (optional, defaults to xlTextQualifierDoubleQuote)
    , _        ' ConsecutiveDelimiter
    , _        ' Tab-delimited? (optional, defaults to False)
    , _        ' Semicolon-delimited? (optional, defaults to False)
    , _        ' Comma-delimited? (optional, defaults to False)
    True       ' Space-delimited?

如何指定其他字符作为分隔符,如|或+?