gpt4 book ai didi

arrays - 如何将数组传递给VBA中的函数?

转载 作者:行者123 更新时间:2023-12-03 10:22:54 26 4
gpt4 key购买 nike

我正在尝试编写一个接受数组作为参数的函数。数组可以有任意数量的元素。

Function processArr(Arr() As Variant) As String
Dim N As Variant
dim finalStr as string
For N = LBound(Arr) To UBound(Arr)
finalStr = finalStr & Arr(N)
Next N
processArr = finalStr
End Function

这是我尝试调用该函数的方法:
Sub test()
Dim fString as string
fString = processArr(Array("foo", "bar"))
End Sub

我收到一条错误消息:

Compile Error: Type mismatch: array or user defined type expected.



我究竟做错了什么?

最佳答案

这似乎没有必要,但 VBA 是一个奇怪的地方。如果你声明了一个数组变量,那么使用 Array() 设置它然后将变量传递给您的函数,VBA 会很高兴。

Sub test()
Dim fString As String
Dim arr() As Variant
arr = Array("foo", "bar")
fString = processArr(arr)
End Sub

还有你的功能 processArr()可以写成:
Function processArr(arr() As Variant) As String
processArr = Replace(Join(arr()), " ", "")
End Function

如果你喜欢整个简洁的东西。

关于arrays - 如何将数组传递给VBA中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26492872/

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