Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

Symptom

När du kör Microsoft Visual Basic-kod som använder Automation för att styra Microsoft Word kan du få något av följande felmeddelanden:

Felmeddelande 1

Körningsfel 2147023174 (800706ba)
Automationsfel

Felmeddelande 2

Körningsfel 462: Fjärrserverdatorn finns inte eller är inte tillgänglig

Orsak

Visual Basic har upprättat en referens till Word på grund av en kodrad som anropar ett Word objekt, en metod eller en egenskap utan att kvalificera den med en Word objektvariabel. Visual Basic släpper inte den här referensen förrän du avslutar programmet. Den här felaktiga referensen stör automationskoden när koden körs mer än en gång.

Lösning

Ändra koden så att varje anrop till ett Word objekt, en metod eller egenskap är kvalificerad med rätt objektvariabel.

Status

Detta är avsiktligt.

Mer information

Om du vill automatisera Word skapar du en objektvariabel som vanligtvis refererar till Word-program- eller dokumentobjektet. Andra objektvariabler kan sedan ställas in för att referera till en markering, ett område eller andra objekt i den Word objektmodellen. När du skriver kod för att använda en Word objekt, metod eller egenskap ska du alltid föregå samtalet med rätt objektvariabel. Om du inte gör det använder Visual Basic en dold global variabelreferens som den anger till den instans som körs för närvarande. Om Word stängs av, eller om variabeln deklarerade objekt släpps, refererar den dolda globala variabeln nu till ett ogiltigt (förstört) objekt. När du kör automationskoden igen misslyckas anrop till den här dolda objektvariabeln med ovan nämnda fel.


Följande steg visar hur du återskapar det här problemet och hur du korrigerar det.
 

Steg för att reproducera beteende

  1. Starta ett nytt Standard EXE-projekt i Visual Basic. Formulär1 skapas som standard.

  2. Klicka på ReferenserProjekt-menyn och klicka sedan på något av följande alternativ:

    • För Office Word 2007 klickar du på Microsoft Word 12.0-objektbibliotek

    • För Word 2003 klickar du på Microsoft Word 11.0-objektbibliotek

    • För Word 2003 klickar du på Microsoft Word 10.0-objektbibliotek

    • För Word 2000 klickar du på Microsoft Word 9.0-objektbibliotek.

    • För Word 97 klickar du på Microsoft Word 8.0-objektbibliotek.

  3. Placera en CommandButton på Formulär1.

  4. Kopiera följande kod till kodfönstret i formulär1:

          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. menyn Kör klickar du på Start eller trycker på F5 för att starta programmet.

  6. Klicka på Kommandoknapp. Inga fel uppstår. En referens till Word har dock skapats och har inte släppts.

  7. Klicka på CommandButton igen och observera att du får felet som beskrivits tidigare.

    Obs! Felet uppstår eftersom koden refererar till InchesToPoints-metoden utan att föregå samtalet med oWord-objektvariabeln.

  8. Stoppa projektet och ändra följande rad:

    .PageSetup.LeftMargin = InchesToPoints(1.25)
    

    -Att-

     

    .PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
    
  9. Kör programmet igen. Klicka sedan på Kommandoknapp. Inga fel uppstår.

  10. Klicka på Kommandoknappen igen och observera att du får felet.

    Obs! Felet uppstår eftersom koden refererar till Objektet Område i ActiveDocument-avsnitt utan att föregå samtalet med oWord-objektvariabeln.

  11. Stoppa projektet och ändra följande rad:

    Set oRange = ActiveDocument.Sections(1).Range
    

    -Att-
     

    Set oRange = oWord.ActiveDocument.Sections(1).Range
    
  12. Kör programmet igen. Observera att du kan köra koden flera gånger utan fel.

När du skapar ett Visual Basic-projekt som automatiserar Word, om projektet har en referens till Microsoft Word-objektbiblioteket, är exempelkod för objekt, metoder och egenskaper för Word-objektmodellen tillgänglig från Word-hjälpfilen. När markören är över ett nyckelord i koden visas eventuell hjälptext genom att trycka på F1-tangenten.


Exempelkoden i hjälpavsnittet är Koden för Microsoft Word Visual Basic for Applications. Objektreferenserna som krävs för Visual Basic-koden visas inte. Du måste lägga till avgränsarna efter behov.

Referenser

Mer information finns i följande artiklar i Microsoft Knowledge Base:

178510 PRB: Excel Automation Method of Object '_Global'Failed

Om du vill ha mer information om Automatisering av Office-program klickar du på artikelnumret nedan för att visa artikeln i Microsoft Knowledge Base:

översikt över Word objektmodell

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×