这种引用对象的方式称为“早期”和“晚期绑定”。来自 MSDN:
将对象分配给对象变量时,Visual Basic 编译器执行称为绑定的过程。
当一个对象被分配给一个声明为特定对象类型的变量时,它是早期绑定的。早期绑定对象允许编译器在应用程序执行之前分配内存并执行其他优化。
相反,当一个对象被分配给一个声明为 Object 类型的变量时,它是后期绑定的。这种类型的对象可以持有对任何对象的引用,但缺乏早期绑定对象的许多优点。
您应该尽可能使用早期绑定对象,因为它们允许编译器进行重要的优化,从而产生更高效的应用程序。早期绑定对象比后期绑定对象快得多,并且通过准确说明正在使用的对象类型使您的代码更易于阅读和维护。
TL博士:
不同之处在于,在早期绑定中,您可以获得智能感知和编译时间奖励,但您应该确保已添加相应的库。
Sub MyLateBinding()
Dim objExcelApp As Object
Dim strName As String
'Definition of variables and assigning object:
strName = "somename"
Set objExcelApp = GetObject(, "Excel.Application")
'A Is Nothing check:
If objExcelApp Is Nothing Then Set objExcelApp = CreateObject("Excel.Application")
'Doing something with the Excel Object
objExcelApp.Caption = strName
MsgBox strName
End Sub
首先确保从 VBE>Extras>Libraries添加MS Excel 16.0 对象库:
Sub MyEarlyBinding()
Dim objExcelApp As New Excel.Application
Dim strName As String
'Definition of variables and assigning object:
strName = "somename"
'A IsNothing check:
If objExcelApp Is Nothing Then Set objExcelApp = CreateObject("Excel.Application")
'Doing something with the Excel Object
objExcelApp.Caption = strName
MsgBox strName
End Sub
相关文章: