解析Excel中从RTD返回的数组

时间:2016-10-05 00:01:05

标签: arrays excel vba excel-vba rtd

我在Excel工作表中使用RTD公式来接收单元格A1中的项目列表:

=RTD("josh.rtd",,"Letters",,"Lower")

单元格A1中返回的列表采用大括号括起来,并以半冒号分隔。基本上,它是一个行的一维数组,看起来像这样

  

{ “一”, “B”, “C”, “d”}

如果我复制该结果,并将值粘贴到A2中,然后复制A2,从电子表格中的列中选择四个单元格,例如A3:A6,并在公式窗口中键入“=”,然后粘贴结果,

={"a";"b";"c";"d"}

我可以按住 ctrl + shift + 输入并用这样的数组元素填充每个单元格:

  

     

B'/ P>      

C

     

d

我的问题是:我可以使用一个公式来解析原始的RTD公式结果吗?我想用该数组的元素填充一个组合框控件。我希望能够通过细胞配方或通过VBA来做到这一点。

1 个答案:

答案 0 :(得分:2)

This文档表明RTD返回一个字符串。如果是这样,以下应该能够解析它,将结果作为数组返回:

Function ParseArray(ArrayString As String) As Variant
    Dim s As String
    s = Replace(ArrayString, "{", "")
    s = Replace(s, "}", "")
    s = Replace(s, """", "")
    ParseArray = Split(s, ";")
End Function