【发布时间】:2014-10-27 07:10:38
【问题描述】:
我确实有一个主 Excel VBA 程序,它调用具有后期绑定的子例程,因为已知原因,使用工具->参考-> Microsoft 脚本运行时是不可行的。
Main Program
Dim Dict As Object
Set Dict = CreateObject("Scripting.Dictionary")
Call SubRoutine(Dict)
下一步是将字典发送到我的子例程
Public Sub SubRoutine(Dict As Scripting.Dictionary)
do something
end
将导致预期的编译错误,因为我没有对 Microsoft Scripting Runtime 的引用。 现在的问题是,如何解决该问题以声明字典。 通过使用
Set Dict = CreateObject("Scripting.Dictionary")
会清空字典。
【问题讨论】:
-
使用
Public Sub SubRoutine(Dict As Object) -
;-) 试过这个,但它改变了类型。使用 Reference the Locals Window 将字典显示为类型 Dictionary/Dictionary。作为对象,它是对象/字典。这对我没有帮助,我需要字典。
-
在我的测试中它工作正常。 它改变了类型是什么意思?
-
如果我使用 Microsoft Scripting Runtime with tools->references 来编译和运行代码,您可以通过 view->Locals Window 看到 dict 的类型是 Dictionary/Dictionary。但是这个我不能用。因此更改为 SubRoutine(Dict As Object) 会更改类型
-
Object/Dictionary正是后期绑定所应具备的。这意味着该变量是一个Object,它可以引用any 对象类型。/Dictionary表示它当前正在引用字典
标签: excel vba dictionary