当前位置:  开发笔记 > 编程语言 > 正文

使用New关键字和在Excel VBA中调用CreateObject有什么区别?

如何解决《使用New关键字和在ExcelVBA中调用CreateObject有什么区别?》经验,为你挑选了2个好方法。

我应该使用什么标准来决定是否像这样编写VBA代码:

Set xmlDocument = New MSXML2.DOMDocument

或者像这样:

Set xmlDocument = CreateObject("MSXML2.DOMDocument")



1> Mitch Wheat..:

只要变量不是作为对象键入的

Dim xmlDocument as MSXML2.DOMDocument
Set xmlDocument = CreateObject("MSXML2.DOMDocument")

是相同的

Dim xmlDocument as MSXML2.DOMDocument
Set xmlDocument = New MSXML2.DOMDocument

都使用早期绑定.而

Dim xmlDocument as Object
Set xmlDocument = CreateObject("MSXML2.DOMDocument")

使用后期绑定.请在此处查看MSDN .

在创建外部提供的对象时,New运算符,声明变量As New和使用CreateObject函数之间没有区别.

New要求引用类型库.而CreateObject使用注册表.

CreateObject可用于在远程计算机上创建对象.



2> JimmyPena..:

你应该经常使用

Set xmlDocument = CreateObject("MSXML2.DOMDocument")

这与绑定问题无关。只有声明确定绑定。

CreateObject独占使用将使您更容易在早期绑定和后期绑定之间切换,因为您只需要更改声明行。

换句话说,如果您这样编写:

Dim xmlDocument As MSXML2.DOMDocument
Set xmlDocument = CreateObject("MSXML2.DOMDocument")

然后,要切换到后期绑定,只需更改第一行(As Object)。

如果您这样写:

Dim xmlDocument As MSXML2.DOMDocument
Set xmlDocument = New MSXML2.DOMDocument

然后,当您切换到后期绑定时,您必须同时更改这两行。

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有