Potrebbe essere visualizzato il messaggio di errore "errore di Run-time '-2147023174' (800706ba)" o "errore di Run-time '462'" quando si esegue codice di Visual Basic che utilizza l'automazione per controllare Word

IMPORTANTE: il presente articolo è stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l’obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre è perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilità per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualità della traduzione.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 189618
Sintomi
Quando si esegue il codice Microsoft Visual Basic che utilizza l'automazione per controllare Microsoft Word, si potrebbe ricevere uno dei seguenti messaggi di errore:

Messaggio di errore 1
Errore di run-time '-2147023174' (800706ba)
Errore di automazione
Messaggio di errore 2
Errore di run-time '462': il computer server remoto non esiste o non è disponibile
Cause
Visual Basic ha stabilito che un riferimento a Word a causa di una riga di codethat chiama un oggetto Word, metodo o proprietà senza qualificarlo con una variabile di oggetto di Word. Visual Basic non comporta il rilascio di questo referenceuntil terminare il programma. Questo riferimento che interferisce con automationcode quando il codice viene eseguito più volte.
Risoluzione
Modificare il codice in modo che ogni chiamata a un oggetto Word, metodo o proprietà qualificato con la variabile di oggetto appropriato.
Status
Questo è il comportamento previsto.
Informazioni
Per automatizzare Word, si stabilisce che un thatusually variabile oggetto fa riferimento all'applicazione di Word o di un oggetto Document. Quindi impostare altre objectvariables per fare riferimento a una selezione, un intervallo o otherobjects nel modello a oggetti di Word. Quando si scrive codice per utilizzare l'oggetto aWord, metodo o proprietà, si deve essere sempre preceduto la chiamata con la variabile di oggetto appropriato. In caso contrario, Visual Basic viene utilizzato un riferimento alla variabile hiddenglobal che vengono impostati per l'istanza attualmente in esecuzione. Se Word viene arrestato o se la variabile oggetto dichiarata viene rilasciata, la variabile globale thehidden verrà ora fatto riferimento (eliminato) oggetto non valido. Quando si esegue nuovamente il codice di automazione, le chiamate a questo objectvariable nascosto avrà esito negativo con l'errore citato.

Nei passaggi seguenti viene illustrato come riprodurre il problema e come tocorrect esso.

Procedura per riprodurre il comportamento

  1. Avviare un nuovo progetto EXE Standard in Visual Basic. Per Default verrà creato Form1.
  2. Scegliere riferimenti dal menu progetto e quindi fare clic su una delle seguenti opzioni:
    • Per Office Word 2007, fare clic su Libreria oggetti di Microsoft Word 12.0
    • Per Word 2003, fare clic su Libreria oggetti di Microsoft Word 11.0
    • Per Word 2003, fare clic su Libreria oggetti di Microsoft Word 10.0
    • Per Word 2000, fare clic su Libreria oggetti di Microsoft Word 9.0.
    • Per Word 97, fare clic su Libreria oggetti di Microsoft Word 8.0.
  3. Inserire un controllo CommandButton nel Form1.
  4. Copiare il seguente codice per la finestra codice di Form1:
          Option Explicit      Private Sub Command1_Click()         Dim oWord As Word.Application         Dim oDoc As Word.Document         Dim oRange as Word.Range         Set oWord = CreateObject("Word.Application")         With oWord             .Visible = True             .Activate             .WindowState = wdWindowStateNormal         End With         Set oDoc = oWord.Documents.Add         MsgBox "Document open", vbMsgBoxSetForeground         With oDoc             .PageSetup.LeftMargin = InchesToPoints(1.25)         End With         ' This example inserts text at the end of section one.         Set oRange = ActiveDocument.Sections(1).Range         With oRange             .MoveEnd Unit:=wdCharacter, Count:= -1             .Collapse Direction:=wdCollapseEnd             .InsertParagraphAfter             .InsertAfter "End of section."         End With         With oDoc             .Saved = True         End With         Set oRange = Nothing         Set oDoc = Nothing         oWord.Quit         Set oWord = Nothing      End Sub					
  5. Dal menu Esegui , fare clic su Start , oppure premere il tasto F5 per avviare il programma.
  6. Scegliere il pulsante di comando. Si verifica alcun errore. Tuttavia, un riferimento a Word è stato creato e non è stato rilasciato.
  7. Scegliere di nuovo il controllo CommandButton e verrà visualizzato l'errore descritto in precedenza.

    Nota L'errore si verifica perché il codice fa riferimento al metodo InchesToPoints senza la chiamata con la variabile di oggetto oWord.
  8. Interrompere il progetto e modificare la riga seguente:
    .PageSetup.LeftMargin = InchesToPoints(1.25)					
    -a-
    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)					
  9. Eseguire nuovamente il programma. Scegliere il pulsante di comando. Si verifica alcun errore.
  10. Scegliere di nuovo il controllo CommandButton e verrà visualizzato l'errore.

    Nota L'errore si verifica perché il codice fa riferimento a oggetto della sezione ActiveDocument uno senza la chiamata con la variabile di oggetto oWord.
  11. Interrompere il progetto e modificare la riga seguente:
    Set oRange = ActiveDocument.Sections(1).Range					
    -a-
    Set oRange = oWord.ActiveDocument.Sections(1).Range					
  12. Eseguire nuovamente il programma. Si noti che è possibile eseguire il codice più volte senza errori.
Quando si compila un progetto di Visual Basic, automazione di Word, se il progetto contiene areference alla libreria di oggetti di Microsoft Word, il codice di esempio per oggetti, metodi e proprietà del modello a oggetti di Word è disponibile il file della Guida di Word. Quando il cursore viene posizionato su una parola chiave nel codice, verrà visualizzato il testo guida applicabile premendo il tasto F1.

Il codice di esempio nell'argomento della Guida sarà il codice di Visual Basicfor applicazioni di Microsoft Word. Esso non verrà visualizzati i riferimenti agli oggetti che richiede che il codice di base yourVisual. È necessario aggiungere i qualificatori asappropriate.
Riferimenti
Per ulteriori informazioni, vedere i seguenti articoli nella Microsoft Knowledge Base riportato di seguito:
178510 PRB: Metodo di automazione dell'oggetto ' Global' non riuscito di Excel
167223 Microsoft Office 97 automazione Help File disponibili
Per ulteriori informazioni sull'automazione delle applicazioni di Office, fare clic sul numero dell'articolo per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
222101 HOWTO: Trovare e utilizzare la documentazione del modello oggetto di Office
ActiveX OLE kbole kbActiveX kbAutomation kbVBp kbVBp400 kbVBp500 kbVBp600 kbWord due volte secondo WD2007

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 189618 - Ultima revisione: 07/03/2016 13:03:00 - Revisione: 9.0

Microsoft Visual Basic 5.0 Learning Edition, Microsoft Visual Basic 5.0 Professional Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic 4.0 Enterprise Edition, Microsoft Office XP Developer Edition, Microsoft Office 2000 Developer Edition, Microsoft Office Word 2007, Microsoft Word 2002 Standard Edition, Microsoft Word 2000 Standard Edition, Microsoft Word 97 Standard Edition

  • kbexpertiseinter kberrmsg kbprogramming kbautomation kbprb kbmt KB189618 KbMtit
Feedback