双数组types不匹配
在处理编译错误时遇到一些麻烦。 我有一个类运行一些进程,并更新其全局variables。 我也有另一个类需要访问这些variables,所以我做了一个Scripting.Dictionary
来保存{key, value}
对。
这一切工作正常,我可以分配在class a
的variables,并在class b
使用它们只需通过引用它的关键词典。
我遇到的问题是:内部class b
我做了一个函数调用,其中我已经引用我的Dictionary
拉Double().
的Double().
这里是函数调用:
TransMatrix = BuildMatrix(i, Control_O(), Control(), Control_Surv(), ClassCoreVariables("All_ACM")())
请注意, ClassCoreVariables(All_ACM)
是指我的词典。
为了完整起见,这里是上面的函数声明:
Public Function TransMatrix(Treat As Integer, OverS() As Integer, OverSur() As Integer, Survi() As Variant, ACM() As Double)
当我尝试执行此代码时,出现以下错误:
编译错误:types不匹配:数组或预期的用户定义types
这使我感到困惑,因为我检查了这个types:
Debug.Print TypeOf(ClassCoreVariables("All_ACM")()
Returns: Double()
我也检查过,以确保数组不是空的(这不是),我也试图在研究networking后将types更改为Variant
。
我不确定如何进一步处理,并希望得到一些帮助。
如果我错过了任何相关信息,请提前询问和感谢。
更新
Debug.Print TypeName(ClassCoreVariables("All_ACM")())
正在返回一个运行时错误:
运行时错误“9”:下标超出范围
ClassCoreVariables("All_ACM")
不是一个Double()
它是一个Variant
包含一个(Dictionary中的任何东西都是这样存储的)。
TypeName()
是从Variantparsingtypes,并显示基础types,但运行时不会在调用该函数时执行此操作。
您需要通过ACM As Variant
:
Function BuildMatrix(ACM As Variant)