Simptomi
Ja palaižat Microsoft Visual Basic kodu, kas izmanto automatizāciju, lai kontrolētu Microsoft Word, iespējams, saņemsit kādu no tālāk norādītajiemkļūdas ziņojumiem.
Izpildlaika kļūda '-2147023174 ' (800706BA) automatizācijas kļūda
2. kļūdas ziņojums
Izpildlaika kļūda "462": attālā servera dators nepastāv vai nav pieejams
Cēlonis
Visual Basic ir izveidota atsauce uz programmu Word, jo koda rindiņā tiek zvanīts uz Word objekta, metodes vai rekvizīta, nekvalificējot to ar Word objekta mainīgo. Visual Basic nelaiž šo atsauci, līdz nebūsit izbeidzat programmu. Šī klīstošā atsauce traucē ar automatizācijas kodu, ja kods tiek palaists vairāk nekā vienu reizi.
Risinājums
Modificējiet kodu tā, lai katrs vārds, metode vai rekvizīts būtu kvalificēts atbilstoši objekta mainīgajam.
Statusa
Šo darbību nodrošina noformējums.
Papildinformācija
Lai automatizētu Word, tiek izveidots objekta mainīgais, kas parasti attiecas uz Word lietojumprogrammas vai dokumenta objektu. Pēc tam citu objektu mainīgos var iestatīt tā, lai tie atbilstu atlasei, diapazonam vai citiem objektiem Word objekta modelī. Rakstot kodu, lai izmantotu Word objektu, metodi vai rekvizītu, vienmēr ir jāveic saruna ar attiecīgo objekta mainīgo. Ja tā nav, Visual Basic izmanto paslēptu Globālā mainīgā atsauci, ko tā iestata uz pašlaik palaisto instanci. Ja programma Word ir beidzēta vai tiek izlaists deklarētā objekta mainīgais, paslēptais globālais mainīgais tagad norāda uz nederīgu (iznīcinātu) objektu. Palaižot automatizācijas kodu, zvani uz šo paslēpto objektu mainīgo neizdosies ar iepriekšminēto kļūdu. Tālāk norādītajās darbībās ir paskaidrots, kā reproducēt šo problēmu, un kā to izlabot.
Darbības, kas jāveic, lai atveidotu darbību
-
Sāciet jaunu standarta EXE projektu programmā Visual Basic. Form1 ir izveidots pēc noklusējuma.
-
Izvēlnē Projekts noklikšķiniet uz atsauces un pēc tam noklikšķiniet uz kādas no šīm opcijām:
-
Ja jums ir Office Word 2007, noklikšķiniet uz Microsoft Word 12,0 objektu bibliotēka
-
Programmā Word 2003 noklikšķiniet uz Microsoft Word 11,0 objektu bibliotēka
-
Programmā Word 2003 noklikšķiniet uz Microsoft Word 10,0 objektu bibliotēka
-
Programmā Word 2000 noklikšķiniet uz Microsoft Word 9,0 objektu bibliotēka.
-
Programmā Word 97 noklikšķiniet uz Microsoft Word 8,0 objektu bibliotēka.
-
-
Novietojiet CommandButton uz Form1.
-
Kopējiet šo kodu Form1 koda logā:
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
-
Izvēlnē palaist noklikšķiniet uz Sākt vai nospiediet taustiņu F5, lai startētu programmu.
-
Noklikšķiniet uz CommandButton. Kļūda nerodas. Taču atsauce uz programmu Word ir izveidota un nav izlaista.
-
Vēlreiz noklikšķiniet uz CommandButton un ievērojiet, ka tiek parādīta iepriekš aprakstītā kļūda.Piezīme. Kļūda rodas tādēļ, ka kods attiecas uz InchesToPoints metodi, kas nav pirms sarunas ar oWord objekta mainīgo.
-
Apturēt projektu un mainīt tālāk norādīto rindiņu.
.PageSetup.LeftMargin = InchesToPoints(1.25)
lai
.PageSetup.LeftMargin = oWord.InchesToPoints(1.25)
-
Palaidiet programmu vēlreiz. Pēc tam noklikšķiniet uz CommandButton. Kļūda nerodas.
-
Vēlreiz noklikšķiniet uz CommandButton un ņemiet vērā, ka saņemat kļūdas ziņojumu.Piezīme. Kļūda rodas tādēļ, ka kods attiecas uz ActiveDocument sadaļu viena diapazona objekts, kas neatrodas pirms zvanīšanas ar objekta oWord.
-
Apturēt projektu un mainīt tālāk norādīto rindiņu.
Set oRange = ActiveDocument.Sections(1).Range
lai
Set oRange = oWord.ActiveDocument.Sections(1).Range
-
Palaidiet programmu vēlreiz. Ievērojiet, ka kodu var palaist vairākas reizes, neizmantojot kļūdu.
Veidojot Visual Basic projektu, automatizējot programmu Word, ja jūsu projektā ir atsauce uz Microsoft Word objektu bibliotēku, programmas Word palīdzības failā ir pieejams objekta koda paraugu kods un rekvizīti. Kad kursors tiek novietots virs atslēgas vārda kodā, jūs redzēsit jebkuru piemērojamo palīdzības tekstu, nospiežot taustiņu F1. Koda paraugs palīdzības tēmā būs Microsoft Word Visual Basic for Applications kods. Tajā netiek rādītas objekta atsauces, kas nepieciešamas Visual Basic kodam. Ierobežotāji ir jāpievieno atbilstoši savām vajadzībām.
Atsauces
Lai iegūtu papildinformāciju, skatiet tālāk norādītos rakstus Microsoft zināšanu bāzē:
178510 PRB: Excel automatizācijas objekta ' _Global ' metode neizdevās
167223 Pieejams Microsoft Office 97 automatizācijas palīdzības failsLai iegūtu papildinformāciju par Office lietojumprogrammu automatizāciju, noklikšķiniet uz tālāk norādītā raksta numura, lai skatītu Microsoft zināšanu bāzes rakstu:
222101 HOWTO: Office objektu modeļa dokumentācijas atrašana un lietošana