首页 > 解决方案 > vba初始化字典的早期和后期绑定

问题描述

以下代码适用于 VBA

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

阅读堆栈中的多个问答我多次遇到代码开头的解决方案:

 Dim aDictionary As Dictionary
Set aDictionary = New Dictionary

这个最新版本给了我一个错误:

新关键字的使用无效

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

谢谢

编辑:堆栈中有很多与此问题相关的问题,建议使用此问题。然而,这样的问题涉及到一个非常具体的字典问题。它也没有解释早期和非早期约束的含义。很高兴知道以下在哪种特定情况下有效。

Dim aDictionary As Dictionary

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

Dim aDictionary As scripting.Dictionary

EDIT2:这些是我的图书馆: 在此处输入图像描述

标签: excelvbadictionaryinitialization

解决方案


首先,您的两个代码集都是早期绑定的。要后期绑定,您可以将变量声明为Object.

其次,至于具体错误,我怀疑您将引用设置为两个库,其中包含一个Dictionary类 - 例如 Word 和脚本运行时 - 并且引用列表中较高的一个是单个实例对象所以你不能用New它。


推荐阅读