gpt4 book ai didi

arrays - 如何让 VBA 子程序调用一个函数,该函数将数组传递给子程序中的另一个函数

转载 作者:行者123 更新时间:2023-12-01 12:48:50 24 4
gpt4 key购买 nike

我试图让我的 VBA 子例程运行一个创建数组的函数,然后将该数组传递给另一个进一步处理这些数组项的函数。我做了一个非常简单的示例,其功能与我的实际代码完全一样。如下:

Sub SubRoutine()
ProcessArray CreateArray
End Sub
Function ProcessArray(Arr() As Variant) As Variant
End Function
Function CreateArray() As Variant
Dim Array1(1 To 4) As Variant
CreateArray = Array1
End Function

它只是两个函数和调用这两个函数的子例程。编译器拒绝编译我的代码并向我解释说:

编译错误:

类型不匹配:应为数组或用户定义的类型

对此我只能说一切都是相同的数据类型,传递的参数确实是一个数组。以防万一你想知道,是的,我已经尝试过一个已经分配了数据的数组。

我知道我在 VBA 语法中缺少一些微妙的东西,但我还没有看到这样的例子。任何见解将不胜感激。

最佳答案

改变这一行:
函数 ProcessArray(Arr() As Variant) As Variant
对此:
函数 ProcessArray(Arr As Variant) As Variant

这样,您的函数现在将接受包含数组的 Variant,而不是查找 Variant 数组。正如您所说,一个微妙但重要的区别。

关于arrays - 如何让 VBA 子程序调用一个函数,该函数将数组传递给子程序中的另一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13868045/

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