Excel 从VBA中的函数返回数组

Excel 从VBA中的函数返回数组,excel,vba,Excel,Vba,我很难让它工作。我只想从函数返回一个数组,下面是我尝试过的代码 Sub Dim storeData As Variant: Set storeData = getData Debug.Print storeData(1) End Sub Function getData() As Variant Dim arr(2) As Variant arr(1) = "ergreg" arr(2) = "1005" getData = arr End Func

我很难让它工作。我只想从函数返回一个数组,下面是我尝试过的代码

Sub 
   Dim storeData As Variant: Set storeData = getData
   Debug.Print storeData(1)
End Sub

Function getData() As Variant
   Dim arr(2) As Variant
    arr(1) = "ergreg"
    arr(2) = "1005"
    getData = arr
End Function

不会抛出任何错误,但不会在即时窗口中打印任何内容

如果要打印所有数组元素,则需要在调试中添加一个
For
循环:

Dim storeData As Variant
Dim i As Long
storeData = getData

For i = LBound(storeData) To UBound(storeData)
    Debug.Print storeData(i)
Next i

快速注释
Dim arr(2)作为变体
,意味着arr有3个元素(从0开始),您只给第二个和第三个元素赋值。

我的错误-感谢@GSerg找到它


只需要删除“Set”。很简单

删除
集合
。这实际上会产生一个类型不匹配的错误。@ChrisBull请参见下面的答案(您的
Debug.Print storeData(1)
将只打印数组中3个元素中的第2个)@Comintern我没有显式设置选项,另一个课程学习感谢您的回答,我的基本设置为1。我不需要打印所有的值,现在只需要一个。