gpt4 book ai didi

excel - 如何在 VBA 中的函数中返回和使用多个值

转载 作者:行者123 更新时间:2023-12-04 21:14:15 42 4
gpt4 key购买 nike

我想写一个用户定义函数(UDF),A返回多个值(比方说 3)。然后我想在另一个 UDF 中使用这些值,B .

我一直在关注
https://www.geeksengine.com/article/vba-function-multiple-values2.html
关于什么 VBA 数据结构将支持这一点。我最初使用的是 collection存储来自 UDF A 的多个值,但在我的用例中,索引 0、1 和 2 有一些值(value),所以想使用 array而不是 collection这样我就可以用基数 0 进行索引(我不确定 collections 是否可行 - 似乎第一个元素是 .Item(1) )。

问题是,我似乎无法在 UDF B 中检索 UDF A 返回的数组的值。

一个最小(非)工作示例:

Function A() As Variant

Dim arr(3) As Variant

arr(0) = "zero"
arr(1) = "one"
arr(2) = "two"

A = arr

MsgBox "Function A"
MsgBox arr(0)

End Function


Function B() As Variant

Dim arry(3) As Variant
Set arry = A()

MsgBox "Function B"
MsgBox arry(0)


End Function

Sub debugfunc()
MsgBox B()
End Sub

我都试过了 Set arry = A()arry = A() .运行 debugfunc 子程序时,两者都会产生“不能分配给数组”错误。

有任何想法吗?

最佳答案

你不使用 Set并且您需要一个相同类型的动态数组来接收函数结果:

Dim arry() As Variant
arry = A()

关于excel - 如何在 VBA 中的函数中返回和使用多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57392782/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com