VBA初始化字典的早期和晚期绑定

时间:2019-06-06 13:21:00

标签: excel vba dictionary initialization

以下代码在VBA中有效

 Dim dict_var As Dictionary
 Set dict_var = CreateObject("Scripting.Dictionary")

读取堆栈中的多个Q&A我在代码以以下内容开头的解决方案中多次出现:

 Dim aDictionary As Dictionary
Set aDictionary = New Dictionary

此最新版本给我一个错误:

无效使用了新关键字

为什么?诀窍在哪里? 为什么要使用一种或另一种方法?

thinks

  

编辑:   堆栈中有许多与此问题相关的问题,建议使用this one。   然而,这样的问题与字典的字典有关的非常具体的问题。   它也没有解释早期约束力和非早期约束力的含义。   知道以下哪种情况会很高兴。

Dim aDictionary As Dictionary

或者换句话说,当确实有必要时:

Dim aDictionary As scripting.Dictionary

EDIT2: 这些是我的图书馆: enter image description here

1 个答案:

答案 0 :(得分:3)

首先,两者都是早期绑定。要进行后期绑定,您可以将变量声明为Object

第二,关于特定错误,我怀疑您对两个具有Dictionary类的库(例如Word和Scripting Runtime)设置了引用,而在其中更高的一个引用列表是单个实例对象,因此您不能将其与New一起使用。