Kopsavilkums
Ja izmantojat jauno operatoru vai funkciju CreateObject programmā Microsoft Visual Basic, lai izveidotu Microsoft Office lietojumprogrammas instanci, var tikt parādīts šāds kļūdas ziņojums:
Izpildlaika kļūda "429": ActiveX komponents nevar izveidot objektu
Šī kļūda rodas, ja Programmkomponentu objektmodeļa (COM) nevar izveidot pieprasīto automatizācijas objektu, un tādējādi automatizācijas objekts ir nepieejams Visual Basic. Šī kļūda nav sastopama visos datoros. Šajā rakstā ir paskaidrots, kā diagnosticēt un atrisināt biežāk sastopamās problēmas, kas var izraisīt šo kļūdu.
Papildinformācija
Programmā Visual Basic ir vairāki kļūdu 429 cēloņi. Kļūda rodas, ja ir patiess kāds no šiem nosacījumiem:
-
Lietojumprogrammā ir kļūda.
-
Sistēmas konfigurācijā ir kļūda.
-
Trūkst komponenta.
-
Ir bojāts komponents.
Lai atrastu kļūdas cēloni, nodaliet problēmu. Ja klienta datorā tiek rādīts kļūdas ziņojums "429", izmantojiet tālāk norādīto informāciju, lai izolētu un novērstu kļūdu Microsoft Office lietojumprogrammās. Piezīme. Daļa no tālāk norādītās informācijas var būt attiecināma arī uz tiem, kas nav Office COM serveri. Taču šajā rakstā tiek pieņemts, ka vēlaties automatizēt Office lietojumprogrammas.
Pārbaudīt kodu
Pirms kļūdas novēršanas mēģiniet izolēt vienu koda rindiņu, kas, iespējams, izraisa problēmu. Ja atklājat, ka problēma var rasties, izmantojot vienu koda rindiņu, veiciet tālāk norādītās darbības.
-
Pārliecinieties, vai kods izmanto tiešu objektu izveidi. Problēmas ir vieglāk noteikt, ja tās ir sašaurinātas līdz vienai darbībai. Piemēram, meklējiet netiešu objektu izveidi, kas tiek izmantota kā viens no tālāk norādītajiem. 1. koda paraugs
Application.Documents.Add 'DON'T USE THIS!!
2. koda paraugs
Dim oWordApp As New Word.Application 'DON'T USE THIS!! '... some other code oWordApp.Documents.Add
Abi šie koda paraugi izmanto netiešo objektu izveidi. Microsoft Office Word 2003 nesākas, līdz mainīgais tiek dēvēts par vismaz vienu laiku. Tā kā mainīgais var tikt nosaukts dažādās programmas daļās, iespējams, ir grūti atrast šo problēmu. Iespējams, būs grūti pārliecināties, vai problēma rodas, kad tiek izveidots lietojumprogrammas objekts vai ir izveidots dokumenta objekts. Tā vietā varat veikt skaidrus zvanus, lai katru objektu izveidotu atsevišķi, kā norādīts tālāk.
Dim oWordApp As Word.Application Dim oDoc As Word.Document Set oWordApp = CreateObject("Word.Application") '... some other code Set oDoc = oWordApp.Documents.Add
Kad veicat skaidrus zvanus, lai katrs objekts tiktu izveidots atsevišķi, ir vieglāk izolēt problēmu. Tas var arī atvieglot koda lasīšanu.
-
Ja izveidojat Office lietojumprogrammas instanci, izmantojiet funkciju CreateObject , nevis jauno operatoru. CreateObject funkcija cieši kartē veidošanas procesu, ko izmanto lielākā daļa Microsoft Visual C++ klientiem. Funkcija CreateObjectarī ļauj veikt izmaiņas servera CLSID starp versijām. Funkciju CreateObjectvar izmantot ar agrāk saistītiem objektiem un ar nokavētiem objektiem.
-
Pārbaudiet, vai "ProgID" virkne, kas tiek nodota CreateObject ir pareiza, un pēc tam pārbaudiet, vai "ProgID" virkne ir neatkarīga no versijas. Piemēram, izmantojiet virkni "Excel. Application", nevis izmantot virkni "Excel. Application. 8". Sistēmai, kas nesekmīga, iespējams, ir vecāka Microsoft Office versija vai jaunāka Microsoft Office versija, nevis versija, ko norādījāt "ProgID" virknē.
-
Izmantojiet komandu ERL , lai ziņotu par koda rindas numuru, kas nav sekmīgs. Tas var palīdzēt atkļūdot lietojumprogrammas, kuras nevar palaist IDE. Šajā kodā norādīts, kuru automatizācijas objektu nevar izveidot (Microsoft Word vai Microsoft Office Excel 2003):
Dim oWord As Word.Application Dim oExcel As Excel.Application On Error Goto err_handler 1: Set oWord = CreateObject("Word.Application") 2: Set oExcel = CreateObject("Excel.Application") ' ... some other code err_handler: MsgBox "The code failed at line " & Erl, vbCritical
Izmantojiet funkciju MsgBox un rindas numuru, lai izsekotu kļūdu.
-
Izmantojiet kādu no tālāk norādītajām saitēm.
Dim oWordApp As Object
Sākumā piesaistītiem objektiem nepieciešams, lai to pielāgotie interfeisi tiktu izvietoti starp procesa robežām. Ja pielāgoto interfeisu nevar pakot CreateObject laikā vai pēc jauna, tiek parādīts kļūdas ziņojums "429". Ar novēlošanos saistītu objektu tiek izmantots IDispatch sistēmas definētais interfeiss, kuram nav nepieciešams izveidot pielāgotu starpniekserveri. Izmantojiet nesaistītu objektu, lai pārliecinātos, vai šī procedūra darbojas pareizi. Ja problēma rodas tikai tad, ja objekts ir agri saistīts, problēma ir servera lietojumprogrammā. Parasti varat atkārtoti instalēt lietojumprogrammu, kā aprakstīts šī raksta sadaļā "pārbaudīt automatizācijas serveri", lai novērstu šo problēmu.
Pārbaudiet automatizācijas serveri
Biežāk sastopamais iemesls kļūdai, kas rodas, izmantojot CreateObject vai jaunu , ir problēma, kas ietekmē servera lietojumprogrammu. Parasti šo problēmu izraisa lietojumprogrammas konfigurācija vai lietojumprogrammas iestatīšana. Lai novērstu problēmas, izmantojiet šādas metodes:
-
Pārliecinieties, vai lokālajā datorā ir instalēta Office lietojumprogramma, kuru vēlaties automatizēt. Pārliecinieties, vai varat palaist lietojumprogrammu. Lai to izdarītu, noklikšķiniet uz Sākt, noklikšķiniet uz Palaidietun pēc tam mēģiniet palaist lietojumprogrammu. Ja lietojumprogrammu nevar palaist manuāli, programma nedarbosies automatizācijā.
-
Atkārtoti reģistrējiet lietojumprogrammu šādi:
-
Noklikšķiniet uz Sākt un pēc tam noklikšķiniet uz Palaist.
-
Dialoglodziņā izpilde ierakstiet servera ceļu un pēc tam pievienojiet /regserver uz rindas beigām.
-
Noklikšķiniet uz Labi. Programma darbojas bez brīdinājuma. Lietojumprogramma ir atkārtoti reģistrēta kā COM serveris.
Ja problēma rodas tāpēc, ka trūkst reģistra atslēgas, šīs darbības parasti novērš problēmu.
-
-
Izpētiet LocalServer32 taustiņu zem tās lietojumprogrammas CLSID, kuru vēlaties automatizēt. Pārliecinieties, vai LocalServer32 atslēga norāda uz pareizo lietojumprogrammas atrašanās vietu. Pārliecinieties, vai ceļa nosaukums ir īss Path (DOS 8,3) formātā. Nav nepieciešams reģistrēt serveri, izmantojot īso ceļa nosaukumu. Taču gari ceļu nosaukumi, kas ietver iegultās atstarpes, var izraisīt problēmas dažās sistēmās. Lai pārbaudītu servera saglabāto Path atslēgu, startējiet Windows reģistra redaktoru, kā norādīts tālāk.
-
Noklikšķiniet uz Sākt un pēc tam noklikšķiniet uz Palaist.
-
Ierakstiet regeditun pēc tam noklikšķiniet uz Labi.
-
Pārvietoties uz HKEY_CLASSES_ROOT \CLSID atslēgu Sistēmā reģistrēto automatizācijas serveru CLSID ir šajā atslēgā.
-
Izmantojiet tālāk norādītās CLSID atslēgas vērtības, lai atrastu atslēgu, kas atbilst Office lietojumprogrammai, kuru vēlaties automatizēt. Pārbaudiet ceļš CLSID atslēgas LocalServer32 atslēgu.
Office Server
CLSID atslēga
Access.Application
{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
Excel.Application
{00024500-0000-0000-C000-000000000046}
Outlook.Application
{0006F03A-0000-0000-C000-000000000046}
PowerPoint.Application
{91493441-5A91-11CF-8700-00AA0060263B}
Word.Application
{000209FF-0000-0000-C000-000000000046}
-
Pārbaudiet ceļu, lai pārliecinātos, vai tas atbilst faktiskajai faila atrašanās vietai.
Piezīme. Īsie ceļu nosaukumi var izskatīties nepareizi, ja tie nav pareizi. Piemēram, gan Office, gan Microsoft Internet Explorer (ja tās ir instalētas to noklusējuma atrašanās vietās) ir īss ceļš, kas līdzinās c: progr ~ 1 \ MICROs ~X\ (kur X ir skaitlis). Šis nosaukums sākotnēji var netikt rādīts kā īss ceļa nosaukums. Lai noteiktu, vai ceļš ir pareizs, veiciet tālāk norādītās darbības.
-
Noklikšķiniet uz Sākt un pēc tam noklikšķiniet uz Palaist.
-
Kopējiet vērtību no reģistra un pēc tam ielīmējiet vērtību dialoglodziņā izpilde . Piezīme. Pirms lietojumprogrammas palaišanas noņemiet /Automation slēdzi.
-
Noklikšķiniet uz Labi.
-
Pārbaudiet, vai programma darbojas pareizi. Ja lietojumprogramma tiek palaista pēc tam, kad noklikšķināt uz Labi, serveris ir pareizi reģistrēts. Ja lietojumprogramma netiek palaista pēc tam, kad noklikšķināt uz Labi, aizstājiet LocalServer32 atslēgas vērtību ar pareizo ceļu. Izmantojiet īso ceļa nosaukumu, ja tas ir iespējams.
-
-
Pārbaudiet, vai ir iespējama bojāta veidne Normal. punktmatricas vai Excel. xlb resursa fails. Problēmas var rasties, automatizējot Microsoft Word vai Microsoft Excel, ja veidne Normal. dot programmā Word vai Excel. xlb resursu failā programmā Excel ir bojāta. Lai testētu šos failus, meklējiet lokālos cietajos diskos visās parasta. punkta vai Excel. xlb instancēs. Piezīme. Varat atrast vairākas šo failu kopijas. Katram lietotāja profilam, kas ir instalēts sistēmā, ir viena kopija. Īslaicīgi pārdēvējiet parastos. dot failus vai Excel. xlb failus un pēc tam atkārtoti palaidiet automatizācijas pārbaudi. Programma Word un Excel izveido šos failus, ja tie nevar tos atrast. Pārbaudiet, vai kods darbojas. Ja kods darbojas, kad ir izveidots jauns fails Normal. dot, izdzēsiet pārdēvētos failus. Šie faili ir bojāti. Ja kods nelīdz, tad šiem failiem ir jāatgriež oriģinālā failu nosaukumos, lai saglabātu pielāgotos iestatījumus, kas saglabāti šajos failos.
-
Palaidiet lietojumprogrammu administratora kontā. Office serveriem ir nepieciešama lasīšanas/rakstīšanas piekļuve reģistram un diskam. Office serveri var netikt ielādēti pareizi, ja jūsu pašreizējie drošības iestatījumi liedz lasīt/rakstīt piekļuvi.
Sistēmas pārbaudīšana
Sistēmas konfigurācija var izraisīt arī problēmas ar COM serveru izveidi ārpus procesa. Lai novērstu problēmas, izmantojiet tālāk norādītās metodes sistēmā, kurā radās kļūda.
-
Nosakiet, vai problēma rodas neatkarīgi no servera. Ja jums ir lietojumprogramma, kas izmanto konkrētu COM serveri (piemēram, Word), testējiet atšķirīgu serveri, lai pārliecinātos, vai problēma nav radusies COM slānī. Ja datorā nevarat izveidot neapstrādātu COM serveri, atkārtoti instalējiet OLE sistēmas failus, kā norādīts šī raksta sadaļā "atkārtota Microsoft Office" vai atkārtoti instalējiet operētājsistēmu, lai atrisinātu šo problēmu.
-
Pārbaudiet to OLE sistēmas failu versijas numurus, kas pārvalda automatizāciju. Šie faili parasti tiek instalēti kā kopa. Šiem failiem ir jāatbilst būvējumu numuriem. Nepareizi konfigurēta uzstādīšanas lietderība var kļūdaini instalēt failus atsevišķi. Tādējādi faili ir nesaskaņoti. Lai izvairītos no problēmām automatizācijā, izpētiet failus, lai pārliecinātos, vai ir saskaņoti failu būvējumi. Automatizācijas faili atrodas direktorijā Windows\system32 atrodas. Izpētiet šos failus.
Faila nosaukums
Versija
Modificēšanas datums
Asycfilt.dll
10.0.16299.15
29. septembris, 2017
Ole32.dll
10.0.16299.371
2018. gada 29. marts
Oleaut32.dll
10.0.16299.431
3. maijs, 2018
Olepro32.dll
10.0.16299.15
29. septembris, 2017
Stdole2.tlb
3.0.5014
29. septembris, 2017
Lai pārbaudītu faila versiju, ar peles labo pogu noklikšķiniet uz faila pārlūkprogrammā Windows Explorer un pēc tam noklikšķiniet uz Rekvizīti. Ievērojiet faila versijas pēdējos četrus ciparus (būvējuma numurs) un datumu, kad fails tika pēdējoreiz modificēts. Pārliecinieties, vai šīs vērtības ir vienādas visiem automatizācijas failiem. Piezīme. Tālāk norādītie faili attiecas uz Windows 10 versija 1709, būvējums 16299,431. Šie numuri un datumi ir tikai piemēri. Jūsu vērtības var atšķirties.
-
Izmantojiet sistēmas konfigurācijas utilītu (msconfig. exe), lai pārbaudītu trešo pušu lietojumprogrammām paredzētos pakalpojumus un sistēmas startēšanu, kas var ierobežot Office lietojumprogrammā esošo kodu. Papildinformāciju par msconfig. exe skatiet šajā Microsoft zināšanu bāzes rakstā:
181966 Sistēmas konfigurācijas utilītas papildu problēmu novēršanas iestatījumi Piemēram, Outlook automatizācijas lietojumprogrammas var neizdoties, jo datorā darbojas pretvīrusu programma, kurā ir skripta bloķēšanas līdzekļi. Piezīme. Īslaicīgi atspējojiet pretvīrusu programmu tikai testa sistēmā, kas nav savienota ar tīklu. Vai arī veiciet tālāk norādītās darbības programmā Outlook, lai atspējotu trešo personu pievienojumprogrammas. Ja šī metode novērš problēmu, sazinieties ar trešās puses antivīrusu piegādātāju, lai iegūtu papildinformāciju par pretvīrusu programmas atjauninājumu.
-
Izvēlnē Fails noklikšķiniet uz Opcijasun pēc tam uz pievienojumprogrammas.
-
Noklikšķiniet uz Pārvaldīt COM pievienojumprogrammasun pēc tam uz dotiesuz. Piezīme. Tiek atvērts dialoglodziņš COM pievienojumprogrammas .
-
Notīriet izvēles rūtiņu, kas attiecas uz jebkuru trešo personu pievienojumprogrammu, un pēc tam noklikšķiniet uz Labi.
-
Restartējiet programmu Outlook.
-
Office atkārtota instalēšana
Ja neviena no iepriekšējām procedūrām neatrisina problēmu, noņemiet un pēc tam pārinstalējiet Office.
Papildinformāciju skatiet šajā Office rakstā:
Office 365 vai Office 2016 lejupielāde un instalēšana vai pārinstalēšana PC vai Mac datorā
Atsauces
Lai iegūtu papildinformāciju par Office automatizācijas un koda paraugiem, dodieties uz šo Microsoft tīmekļa vietni: