有时候会出现:“服务器正在运行中,请切换到...”的提示,然后按[切换到]按钮,就突然弹出开始菜单,然后又出现“服务器正在运行中,请切换到...”的提示,死循环。而且当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
'提取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
False, ReadOnly:=True, AddToRecentFiles:=False, PasswordDocument:="", _
PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
WritePasswordTemplate:="", Format:=wdOpenFormatAuto