如何在vba中将单元格中的子串分隔为数组

时间:2013-02-05 23:58:37

标签: excel-vba vba excel

我想知道是否有人可以给我一些指示。我有一个列,每个单元格中的数据排列如下:

Column E

E1-  name-age(nickname)   name-age(nickname)   name-age(nickname) ....
E2-  name-age(nickname)   name-age(nickname)   name-age(nickname) ....
etc...

问题是它在一列中,我知道我可以使用文本到列功能并按空格分隔它们。但是,有更优雅的方法吗?如果可能的话,我想在vba上做。

我的最终目标是将每个“name-age(nickname)”对联捕获到一个数组中。目前我从vba -wise开始的是

Sub SplitColumn()
    Details = Cells(i, 5).Value  // where the big column data is located
    tempString = Left(Details, InStr(Details, "  "))
End Sub

有了这个,我只能在那个单元格中得到第一个名字 - 年龄(昵称)对联..有没有更好的方法来解决这个问题?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您将子例程命名为Split列,但没有使用拆分函数。

您有两种选择:

  1. 按空格分割
  2. E.g。 cellvalue只是引用您的单元格的变量名称。对于多个单元格,您可以循环使用。

      vArray As Variant
      vArray = Split(cellvalue, " ") 
    
    1. 在菜单栏中使用Text to Columns向导。然后将范围转置或转储到变量数组中。
    2. E.g。

      vArray = Sheets(1).Range("A1:H10").value