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



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

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中,数组不是存储在value"字段中,而是存储在"refersto"字段中。

我可以像这样访问它:

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

最新更新