@璐村惂鐢ㄦ埛_0748V5Z馃惥 CreateObject("MSScriptControl.ScriptControl")实际引用的是msscript.ocx,而赋值到Object是后期绑定,赋值到ScriptControl是前期绑定
也就是说:
Private Obj As Object
Private Sub Form_Load()
Set Obj = CreateObject("MSScriptControl.ScriptControl") '由于Obj的Object类型,所创建的对象属于后期绑定,因为不知道其属性和函数
Obj.Language = "vbscript"
End Sub
而
Private Obj As ScriptControl
Private Sub Form_Load()
Set Obj = CreateObject("MSScriptControl.ScriptControl") '由于Obj的ScriptControl类型,所创建的对象属于前期绑定,需要引用msscript.ocx,已经知道其属性和函数
Obj.Language = "vbscript"
End Sub
上面的也可以改成(由于引用了msscript.ocx,直接new就行)
Private Obj As ScriptControl
Private Sub Form_Load()
Set Obj = New ScriptControl
Obj.Language = "vbscript"
End Sub
Private Obj As ScriptControl 这种前期绑定的调用的函数也比后期的要快(具体可以参考相关资料了解)
所以之前的代码改成先引用mscript.ocx(相当于引用tlb,不是部件里添加),调用Eval效率大概能提升20%左右
还一种是直接在部件里引用mscript.ocx,应该都是知道的