各位高手,请赐教。
本人通过引用word对象,也能打开文件;可是速度太慢了。
还有什么其他的方法吗?
Private Sub CmdOpen_Click()
Dim lsFileName As String
Dim lsPath As String
Dim lsName As String
Dim lbApp As Boolean
Dim llCount As Long
Dim wordObj As Word.Application
'浏览要添加的的文件
CommonDialog1.CancelError = True '取消报错 并且跳出执行!
On Error GoTo err_cancel
CommonDialog1.DialogTitle = "选择要打开的Word文件"
'CommonDialog1.InitDir = App.Path
CommonDialog1.Filter = "Word文件(*.doc)|*.doc"
CommonDialog1.FileName = ""
CommonDialog1.ShowOpen
lsFileName = CommonDialog1.FileName '获取完整路径
lsName = CommonDialog1.FileTitle '只获取文件名
lsPath = Replace$(lsFileName, lsName, "") '获取文件所在的路径
'循环进行处理!判断是否存在打开的word进程 !
lbApp = False
Do While True
On Error Resume Next
Set wordObj = GetObject(, "Word.Application") '用于判断已经打开的word进程
If wordObj Is Nothing Then Exit Do '如果没有找到进程那么就退出循环
If wordObj.Documents.Count = 0 Then '如果是一个空进程就释放
wordObj.Quit
Set wordObj = Nothing
Else
For llCount = 1 To wordObj.Documents.Count '这个应用就是,手工打开文件的应用!
If Err.Number = 0 Then '有Word已经打开
If wordObj.Documents(llCount).FullName = lsFileName Then '判断是否有要打开的进程
Text1.Text = wordObj.Documents(llCount).Content.Text '这个是对文件的操作
GoTo endSub
End If
End If
lbApp = True
Next
End If
If llCount <> 0 Then Exit Do '所有打开的里面没有要打开的文件
Loop
Err.Clear
If lbApp = False Then
Set wordObj = CreateObject("Word.Application") '创建word应用类
wordObj.Visible = False
wordObj.Documents.Open (lsFileName)
Text1.Text = wordObj.ActiveDocument.Content.Text
wordObj.Quit
Set wordObj = Nothing
Else
wordObj.Documents.Open (lsFileName) '直接在原来的应用上打开文件
Text1.Text = wordObj.ActiveDocument.Content.Text
wordObj.ActiveDocument.Close (False) '关闭打开的文件'但是不关闭应用
End If
endSub:
MsgBox "成功"
Exit Sub
err_cancel:
MsgBox "你点的是取消"
End Sub