VBA Excel在引号和放入数组之间提取值

时间:2013-06-12 09:55:06

标签: excel vba

我正在生成一个这样的数组:

Dim arTest(1 To 6) As Variant

arTest(1) = "0"
arTest(2) = "1"
arTest(3) = "2"
arTest(4) = "3"
arTest(5) = "4"
arTest(6) = "5"
ActiveWorkbook.Names.Add Name:="arTest", RefersTo:=arTest

最后一行将数组放入Excel工作表中的“命名范围”。

稍后我想从该命名范围在VBA中创建一个新数组。在Excel中,数组不存储在值“field”中,而是存储在“referto”字段中。

我可以像这样访问它:

Dim nm As Name
Set nm = Names("arTest")
Debug.Print nm.RefersTo

输出这个:

={"0","1","2","3","4","5"}

现在,我不知道如何将该字符串(我假设它是一个字符串?)转换为VB数组。

我认为它可能是一个正则表达式的解决方案,但如果有一种更简单的方法会很好。

2 个答案:

答案 0 :(得分:2)

也许

   arOut = Evaluate(Names("arTest").Value)

答案 1 :(得分:0)

这适用于您的示例:

Dim s As String
Dim ss() As String ' or Variant, if you prefer
s = Replace(nm.Value, """", "")
ss = Split(Mid(s, 3, Len(s) - 3), ",")