有时候会出现:“服务器正在运行中,请切换到...”的提示,然后按[切换到]按钮,就突然弹出开始菜单,然后又出现“服务器正在运行中,请切换到...”的提示,死循环。而且当Word程序正在打开的时候,调用该函数还会出问题,说模版锁定之类的。请问,能否把这段代码改改,尽量少出这种状况,或是有没有其他更好的提取doc文档 纯文本的方法?代码如下:Option ExplicitPublic Function GetDocText(ByVal sFQFilename As String) As String
'提取Word文档的纯文本。
'INPUT-----------------------------------------------------------
'sFQFilename            Word文档的全路径名
'OUTPUT----------------------------------------------------------
'Return Value           提取的纯文本
'----------------------------------------------------------------Dim Wapp As Object, Doc As Object  'Word Application 对象、Document 对象try: On Error GoTo catch
'{
    Set Wapp = CreateObject("Word.Application") '创建Word Application 对象
    Set Doc = Wapp.Documents.Open(sFQFilename) '打开文档,返回一个文档对象
    GetDocText = Doc.Content.Text '提取纯文本
'}
GoTo finally
catch:
'{
    GetDocText = ""
'}
finally:
'{
    '如果文档对象不为空,那么说明打开了文档,关闭它,并销毁文档对象
    If Not (Doc Is Nothing) Then Doc.Close: Set Doc = Nothing
    '如果word application对象不为空,那么说明创建了word对象,
    '退出它,并销毁对象
    If Not (Wapp Is Nothing) Then Wapp.Quit: Set Wapp = Nothing
'}End Function

解决方案 »

  1.   

    大哥,你的编玛怎么那么有风格呢?感觉象java的错误处理。在word开着的时候确实会出问题。你可以提示关闭word不要总createobject,先判断word是否打开,如果打开用getobject
      

  2.   

    Function Open(FileName, [ConfirmConversions], [ReadOnly].....以只读方式打开
      

  3.   

    Set Doc = Wapp.Documents.Open(sFQFilename,true,true) 不行呀。这方面的资料怎么这么少。只能在vb对象浏览器中看到一个声明Function Open(FileName, [ConfirmConversions], [ReadOnly].....就是上面那位朋友贴的。
      

  4.   

    Wapp.Documents.Open FileName:="""F:\Test.doc""", ConfirmConversions:= _
            False, ReadOnly:=True, AddToRecentFiles:=False, PasswordDocument:="", _
            PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
            WritePasswordTemplate:="", Format:=wdOpenFormatAuto