我把CallByName包装了一下,如Public Function CallX(ByVal ObjectName As String, ByVal ProcName As String, ParamArray Args() As Variant) As Variant Dim intArgs As Integer Dim objTmp As Object
Set objTmp = CreateObject(ObjectName)
intArgs = UBound(Args) + 1 Select Case intArgs Case 0 CallX = CallByName(ObjectName, ProcName, VbMethod) Case 1 CallX = CallByName(ObjectName, ProcName, VbMethod, Args(0)) Case 2 CallX = CallByName(ObjectName, ProcName, VbMethod, Args(0), Args(1)) '...
End Select
End Function'调用 xValue=Callx("TestLib.TestObject","Test",Arg1,Arg2...)假如当"TestLib.TestObject"对象中有自定义的错误时,返回到CallX函数中的错误都成了Automation错误,系统错误不变。
Dim objTmp As Object
Set objTmp = CreateObject(ObjectName)
intArgs = UBound(Args) + 1 Select Case intArgs
Case 0
CallX = CallByName(ObjectName, ProcName, VbMethod)
Case 1
CallX = CallByName(ObjectName, ProcName, VbMethod, Args(0))
Case 2
CallX = CallByName(ObjectName, ProcName, VbMethod, Args(0), Args(1))
'...
End Select
End Function'调用
xValue=Callx("TestLib.TestObject","Test",Arg1,Arg2...)假如当"TestLib.TestObject"对象中有自定义的错误时,返回到CallX函数中的错误都成了Automation错误,系统错误不变。