Arrays 将数组存储到变量vba中

Arrays 将数组存储到变量vba中,arrays,vba,Arrays,Vba,我有一个UDF,它返回一个行向量。我想在另一个函数中使用上述UDF的结果。因此,我想使用一个变量来存储数组结果,作为第二个函数的输入。当我想调用变量的一个元素时,我会得到一个错误“objectrequired” 我的代码中缺少什么?谢谢您需要引用不带项的数组索引属性(数组不存在此属性),如下所示: 正如其他帖子所提到的,您不会在VBA中对数组使用.Item属性。因此,您只需执行以下操作: u = test() x = u(4) 关于你为什么需要转换函数的问题,这里有一些指导: VBA并不能很好

我有一个UDF,它返回一个行向量。我想在另一个函数中使用上述UDF的结果。因此,我想使用一个变量来存储数组结果,作为第二个函数的输入。当我想调用变量的一个元素时,我会得到一个错误“objectrequired”


我的代码中缺少什么?谢谢

您需要引用不带
项的数组索引
属性(数组不存在此属性),如下所示:


正如其他帖子所提到的,您不会在VBA中对数组使用.Item属性。因此,您只需执行以下操作:

u = test()
x = u(4)
关于你为什么需要转换函数的问题,这里有一些指导:

VBA并不能很好地处理一维数组。因此,根据您试图对其执行的操作,您通常必须将数组转换为单个“行”。我相信这基本上等同于改变

x=u(n)
进入
x=u(1,n)

我现在遇到一个“下标超出范围”。但是,我尝试了转置test()函数,它成功了。有什么想法吗?
Item
确实存在于VBA中,用于集合,但不用于数组。@Jean-FrançoisCorbett,谢谢,已经更新以反映您的评论。请说明
u
x
是如何声明的,以及
test()
实际返回的内容,也就是说,返回的数组是如何在函数中声明的。
用于与数组不同的集合。我已经修改了我的答案,以解决原始问题,以及关于为什么需要转置数组的后续问题。
u = test()
x = u(4)
u = test()
x = u(4)