Многократное открытие документа Word из Excel
Добавлено: 11 мар 2008, 11:44
Помогите, пожалуйста! Я сделал в excel форму с кнопкой, при нажатии которой отрывается документ в word, выдается название документа и первое слово первого абзаца. Затем документ вместе с word закрывается. Все работает… Но, при повторном запуске процедуры, то есть нажатии на кнопку выдается ошибка 462 (Удаленный сервер не существует или не доступен). Открывается документ и вываливается ошибка при любом обращению к его содержимому. В данном листинге при выполнении строки Documents(fileW).Activate . Я пишу программу, в которой нужно многократно открывать для извлечения информации один и тот же файл. Что посоветуете?
Private objWord As Word.Application
Private FlagW As Boolean
Private zu As String
Private Sub CommandButton1_Click()
Dim fileW As String
Dim re As String
Dim wordapp As Word.Application
Dim objDoc1, objDoc0 As Document
fileW = ThisWorkbook.Path & "\ball1.doc"
FlagW = False
On Error GoTo errorhandler
Set objWord = GetObject(, "word.application")
objWord.Application.DisplayAlerts = wdAlertsNone
With objWord
.Visible = True
.Documents.Open Filename:=fileW
End With
Documents(fileW).Activate
re = ActiveDocument.Name
MsgBox re
re = ActiveDocument.Paragraphs(1).Range.Words(1)
MsgBox re
'Set objWord = GetObject("word.application")
destructor
Exit Sub
errorhandler:
Select Case Err.Number
Case 429
FlagW = True
Set objWord = CreateObject("word.application")
Resume Next
Case Else
MsgBox Err.Description & " " & Err.Number, vbInformation
Exit Sub
End Select
destructor
End Sub
Private Sub destructor()
Set objDoc = objWord.ActiveDocument
objWord.ActiveDocument.Close
'If FlagW = True Then
objWord.Quit
Set objWord = Nothing
End Sub
Private objWord As Word.Application
Private FlagW As Boolean
Private zu As String
Private Sub CommandButton1_Click()
Dim fileW As String
Dim re As String
Dim wordapp As Word.Application
Dim objDoc1, objDoc0 As Document
fileW = ThisWorkbook.Path & "\ball1.doc"
FlagW = False
On Error GoTo errorhandler
Set objWord = GetObject(, "word.application")
objWord.Application.DisplayAlerts = wdAlertsNone
With objWord
.Visible = True
.Documents.Open Filename:=fileW
End With
Documents(fileW).Activate
re = ActiveDocument.Name
MsgBox re
re = ActiveDocument.Paragraphs(1).Range.Words(1)
MsgBox re
'Set objWord = GetObject("word.application")
destructor
Exit Sub
errorhandler:
Select Case Err.Number
Case 429
FlagW = True
Set objWord = CreateObject("word.application")
Resume Next
Case Else
MsgBox Err.Description & " " & Err.Number, vbInformation
Exit Sub
End Select
destructor
End Sub
Private Sub destructor()
Set objDoc = objWord.ActiveDocument
objWord.ActiveDocument.Close
'If FlagW = True Then
objWord.Quit
Set objWord = Nothing
End Sub