我要操作一个外部对象,如Word。
创建了一个对象,并保存在全局变量里。
但有一个问题,如果用户把它这个word关闭了,而程序还在运行。结果老是出错。
有什么办法去检测一个对象是否存在?

解决方案 »

  1.   

    设置On Error,检测错误类型给出提示
      

  2.   

    On error 麻烦得要死,调试时又不好用.处理代码写长得要死
      

  3.   

    参考:
    Private Sub Command1_Click()
        On Error GoTo connecterr
        Dim wordApp As Object
        Set wordApp = CreateObject("word.application")
        wordApp.Visible = True
        Dim myDoc As Object
        'Set myDoc = wordApp.Documents.Add
        Set myDoc = wordApp.Documents.Open(App.Path & "\test.doc")
        wordApp.selection.TypeText (" Hello")
        MsgBox "a"
        wordApp.selection.TypeText (" Hello@@")    myDoc.Close
        wordApp.Quit
        Set myDoc = Nothing
        Set wordApp = Nothing
        Exit Sub
    connecterr:
        If Err.Number = 5174 Then MsgBox "文件不存在!"
        If Err.Number = 462 Then MsgBox "操作对象已经关闭!"
    End Sub
      

  4.   

    但我后面的程序还要运行啊,就是对象不存在里的代码处理.又一个resume next? 比较难定位
      

  5.   

    //有什么办法去检测一个对象是否存在?用objptr(对象名称)是否为0进行判断(如果为0,则对象不存在)
      

  6.   

    public gWordApp as objectpublic function wordApp as object
    on error goto err
       set wordApp =gWordApp 
    exit fucntion
    err:
       Set gWordApp = CreateObject("word.application")
       resume 0
    end function
      

  7.   

    if iserror(wordapp.name) then