On Error GoTo aErr Dim dllObj As Object, dllVal As String, regTry As Boolean Set dllObj = CreateObject("xxx.yyyy") '你的类名 dllval=dllObj.xxxx '你的类过程/方法 Set dllObj = Nothing
Exit sub
aErr: If Err.Number = 429 And Not regTry Then 'dll错误且库存在,尝试注册它一次(只能一次,否则会死循环) If Dir("dll文件名") <> "" Then '带 /s 参数运行 regsvr32,不显示信息框 Shell "Regsvr32 " & Chr(34) & "dll文件名" & Chr(34) & " /s", vbHide regTry = True Resume End If End If
Set dllObj = CreateObject("xxx.yyyy") '你的类名
dllval=dllObj.xxxx '你的类过程/方法
Set dllObj = Nothing
Exit sub
aErr:
If Err.Number = 429 And Not regTry Then
'dll错误且库存在,尝试注册它一次(只能一次,否则会死循环)
If Dir("dll文件名") <> "" Then
'带 /s 参数运行 regsvr32,不显示信息框
Shell "Regsvr32 " & Chr(34) & "dll文件名" & Chr(34) & " /s", vbHide
regTry = True
Resume
End If
End If
msgbox "对象创建失败"
出错处理
然后shell regsvr32即可