0

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

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 数组中。

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

4

2 回答 2

2

也许

   arOut = Evaluate(Names("arTest").Value)
于 2013-06-12T10:29:06.963 回答
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), ",")
于 2013-06-12T10:36:58.367 回答