VBA Excel提取引号之间的值并放入数组

VBA Excel提取引号之间的值并放入数组,excel,vba,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中创建一个新数组。在E

我生成的数组如下所示:

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中,数组不存储在“值”字段中,而是存储在“引用”字段中

我可以这样访问它:

Dim nm As Name
Set nm = Names("arTest")
Debug.Print nm.RefersTo
其结果如下:

={"0","1","2","3","4","5"}
现在,我不确定如何将该字符串(我假定它是字符串?)放入VB数组中

我想这可能是一个正则表达式类型的解决方案,但如果有一个更简单的方法就好了。

也许吧

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

这适用于您的示例:

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), ",")

@JosieP的答案要好得多;它也适用于(非字符串)数值。非常好而且简单,非常感谢。为了帮助我和其他人,请你简单解释一下它的工作原理好吗?Evaluate计算公式字符串的方法与excel在cell中的计算方法相同嗯,我刚刚意识到,存储在我命名范围中的数组实际上是以下格式:={0,1,2,3,4,5}(无引号)。这似乎和工作方式不一样:/发现我的问题。我的数组太长。由于它存储在“referesto”字段中,有255个字符的限制,因此我的数组字符串被截断:(