gpt4 book ai didi

vba - 在 VBA 中启用字典对象

转载 作者:行者123 更新时间:2023-12-02 07:52:31 24 4
gpt4 key购买 nike

当我在 Excel VBA 中启动字典对象时,我发现了两种方法:

  1. 使用CreateObject("Scripting.Dictionary")(无“Microsoft Scripting Runtime”);
  2. 首先打开引用“Microsoft Scripting Runtime”,然后使用 Dim dict As New Scripting.Dictionary

它们都可以在我的机器上运行。我想知道这两种方法有什么区别吗?

最佳答案

我知道的唯一区别是第一个使用Late bind,第二个使用Early bin。两者区别解释here .

早期绑定(bind)有优点。其中之一是您可以使用Intellisense 来指导您了解可在编码中使用的绑定(bind)对象的可用属性。此外,据说它的性能更快。您还可以按原样使用内置常量。无需检查其等效值。这是讨论的here .

后期绑定(bind)也有优势,特别是当您绑定(bind)具有不同版本的对象时。这降低了由于版本不兼容而导致运行时错误的风险(也在第一个链接中提到)。

对于我来说,我在开发过程中总是使用早期绑定(bind),这样我就可以利用Intellisense。如果需要转换为后期绑定(bind),我会在我或客户完成稳健测试后进行。

附加:

当您使用早期绑定(bind)时不要使用自动实例化对象变量,正如 CPearson 在他的文章 here 中讨论的那样。以下是他的博客的摘录。

For object type variables, it is possible to include the New keyword in the Dim statement. Doing so create what is called an auto-instancing variable. Again, while this may seem convenient, it should be avoided. Contrary to what some programmers may believe, the object isn't created when the variable declaration is processed. Instead, the object is created when it is first encountered in the code. This means that, first, you have limited control when an object is created. Second, it means that you cannot test whether an object is Nothing, a common test within code and a common testing and diagnostic technique.

因此设置变量的更好方法是:

Dim dict As Scripting.Dictionary
Set dict = New Scripting.Dictionary

关于vba - 在 VBA 中启用字典对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29001983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com