我应该使用什么标准来决定是否像这样编写VBA代码:
Set xmlDocument = New MSXML2.DOMDocument
或者像这样:
Set xmlDocument = CreateObject("MSXML2.DOMDocument")
?
只要变量不是作为对象键入的
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可用于在远程计算机上创建对象.
你应该经常使用
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
然后,当您切换到后期绑定时,您必须同时更改这两行。