连接选择值时将文本添加到列

时间:2014-05-06 23:29:42

标签: excel vba excel-vba

我只想知道是否有一种简单的方法可以执行TextToColumns之类的命令,获取array并将该数组的部分内容连接到列中。

示例:

  

在单元格A2中选择TextToColumns字符串:John Doe 1:00 PM - 3:00 PM
  要粘贴到单元格B2中的值:John Doe
  要粘贴到单元格C2中的值:1:00 PM
  要粘贴到单元格D2中的值:3:00 PM

我现在使用的代码是一个简单的TextToColumns序列:

Sheets("Sheet1").Range("A2:A60").Select
    Selection.TextToColumns Destination:=Sheets("Sheet1").Range("B2"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
    Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
    :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
    Array(7, 1))

TextToColumns运行后,我有3个CONCATENATE公式一起重新加入值。我认为可能有更好的方法来处理这些信息

1 个答案:

答案 0 :(得分:1)

未测试:

dim c, arr

for each c in Range("A2:A60").cells
    If Len(c.value) > 0 then
        arr = split(c.value," ")
        c.offset(0, 1).value = arr(0) & " " & arr(1)
        c.offset(0, 2).value = arr(2) & " " & arr(3)
        c.offset(0, 3).value = arr(5) & " " & arr(6)
    End If
next c