双数组types不匹配

在处理编译错误时遇到一些麻烦。 我有一个类运行一些进程,并更新其全局variables。 我也有另一个类需要访问这些variables,所以我做了一个Scripting.Dictionary来保存{key, value}对。

这一切工作正常,我可以分配在class a的variables,并在class b使用它们只需通过引用它的关键词典。

我遇到的问题是:内部class b我做了一个函数调用,其中我已经引用我的DictionaryDouble().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)