Kopsavilkums

Izmantojot jauno operatoru vai funkciju CreateObject programmā Microsoft Visual Basic izveidot gadījumu no Microsoft Office lietojumprogrammas, var saņemt šādu kļūdas ziņojumu:

Izpildlaika kļūda '429': objektu nevar izveidot ActiveX komponents

Šī kļūda rodas, ja Component Object Model (COM) nevar izveidot pieprasīto automatizācijas objekts, un tāpēc automatizācijas objekts nav pieejams Visual Basic. Šī kļūda nerodas visos datoros. Šajā rakstā ir aprakstīts, kā diagnosticēt un atrisināt biežāk sastopamās problēmas, kuras var izraisīt šo kļūdu.

Papildinformācija

Visual Basic ir dažādi cēloņi 429 kļūdas. Šī kļūda rodas, ja ir spēkā kāds no šiem nosacījumiem:

  • Lietojumprogramma ir kļūda.

  • Sistēmas konfigurācija ir kļūda.

  • Trūkst ietilpst.

  • Ir bojāta komponentu.

Lai atrastu kļūdas cēloni, noteikt problēmu. Ja "429" kļūdas ziņojums klienta datorā, izmantojiet tālāk norādīto informāciju atrašanas un novērstu kļūdu Microsoft Office programmās. Piezīme. Šī informācija var attiekties arī uz Office COM serveriem. Tomēr šajā rakstā tiek pieņemts, jūs vēlaties automatizēt Office lietojumprogrammām.

Pārbaudiet kodu

Pirms varat novērst kļūdu, mēģiniet noskaidrot vienu rindiņu kodu, kas var būt problēmas cēlonis. Ja atklājat, ka viena veida kods var būt problēmas cēlonis, veiciet šīs darbības:

  • Pārliecinieties, ka kodu izmanto tiešu objektu izveide. Problēmas ir vieglāk identificēt, ja tie ir sašaurināt uz leju līdz vienā darbībā. Piemēram, meklējiet netiešā objekta izveides, kas izmanto vienu no šīm darbībām. Parauga kods 1

    Application.Documents.Add 'DON'T USE THIS!!

    Parauga kods 2.

    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add

    Abi šie kodu paraugi izmantot netiešas objekta izveide. Microsoft Office Word 2003 netiek startēta, kamēr mainīgo sauc vismaz vienu reizi. Tā kā mainīgais var izsaukt dažādas programmas daļas, problēmu var būt grūtības atrast. Tas var būt grūti pārbaudiet, vai problēmu izraisa programmas objekta izveidošanas vai veidojot dokumentu objektu. Tā vietā varat zvanīt skaidri šādi katra objekta veidošanai.

    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add

    Veicot tiešu zvanu izveidot katram objektam atsevišķi, ir vieglāk izolēt problēmu. Tas var padarīt šo kodu vieglāk lasāmu.

  • Jaunā operatora vietā izmantojiet funkciju CreateObject veidojot gadījumu Office lietojumprogrammu. Funkcija CreateObject cieši kartes izveidi, kas izmanto lielākā daļa Microsoft Visual C++ klientu. CreateObjectfunkcija ļauj izmaiņām CLSID servera versijas. Varat izmantot CreateObjectfunkcija ar agrās saistīšanas objekti un beigās saistītie objekti.

  • Pārbaudiet, vai "ProgID" virkne, kas tiek nosūtīts uz CreateObject ir pareiza, un pēc tam pārbaudiet, vai "ProgID" virkne tiek neatkarīga versija. Piemēram, nevis izmantojot virkni "Excel.Application.8" izmantot virkni "Excel. Application". Sistēma, kas neizdodas var būt vecāku Microsoft Office versiju vai jaunāku Microsoft Office par versiju, kuru norādījāt virknē "ProgID".

  • Izmantojiet komandu Erl ziņot par kodu, kas nav sekmīga rindas numurs. Tas var palīdzēt atkļūdot programmas, kas nevar palaist IDE. Šis kods norāda 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 numurs izsekot kļūdu.

  • Vēlīnā saistīšana izmantot šādi:

    Dim oWordApp As Object

    Agrās saistīšanas objektiem nepieciešams to pielāgotu saskarnes novirzījuši procesu robežās. Ja pielāgoto interfeiss nevar novirzījuši CreateObject vai Jaunslaikā, tiek parādīts "429" kļūdas ziņojums. Vēlīnā saistīta objekta izmanto INosūtīt sistēmas definēts interfeisu, kas nepieciešama pielāgota starpniekserveris ir novirzījuši. Vēlīnā saistīta objekta izmantot, lai pārbaudītu, vai šīs procedūras darbojas pareizi. Ja problēma rodas tikai tad, ja šis objekts agrās saistīšanas, problēma ir servera lietojumprogrammu. Parasti, varat atkārtoti instalēt programmas, kā aprakstīts sadaļā "Pārbaudīt automatizācijas serveris" šo rakstu, lai novērstu šo problēmu.

Izpētiet automatizācijas serveris

Kļūda var rasties, lietojot CreateObject vai jauna visbiežāk iemesls ir problēma, kas ietekmē servera lietojumprogrammu. Parasti, problēmu izraisa lietojumprogrammas konfigurācijas vai uzstādīšanas programmu. Lai novērstu, izmantojiet šādu metodes:

  • Pārbaudiet, vai ir instalēta Office programmu, kuru vēlaties automatizēt lokālajā datorā. Pārliecinieties, vai varat palaist programmu. Lai to izdarītu, noklikšķiniet uz Sākt, noklikšķiniet uz Palaist, un pēc tam mēģiniet palaist lietojumprogrammu. Ja nevarat palaist programmu manuāli, lietojumprogramma nedarbosies izmantojot automatizāciju.

  • Atkārtoti reģistrējiet programmu šādi:

    1. Noklikšķiniet uz Sāktun pēc tam noklikšķiniet uz palaist.

    2. Dialoglodziņā izpildīt ierakstiet ceļu uz serveri un pēc tam pievienojiet /RegServer uz rindas beigām.

    3. Noklikšķiniet uz Labi. Lietojumprogramma darbojas bez brīdinājuma. Lietojumprogramma tiek atkārtoti reģistrēta kā COM serveris.

    Ja šī problēma rodas, jo trūkst reģistra atslēgas, šādi parasti novērstu šo problēmu.

  • Izpētiet LocalServer32 atslēgai CLSID lietojumprogrammai, ko vēlaties automatizēt. Pārliecinieties, ka LocalServer32 atslēga norāda uz pareizo vietu lietojumprogrammas. Pārliecinieties, vai ceļš ir īss ceļš (DOS 8.3) formātā. Nav jāreģistrē serveri, izmantojot īsu ceļš. Tomēr ilgi ceļu nosaukumus, kas ir iegults atstarpes var radīt problēmas dažās sistēmās. Pārbaudīt atslēgas ceļš tiek saglabāts serverī, startējiet Windows Registry Editor šādi:

    1. Noklikšķiniet uz Sāktun pēc tam noklikšķiniet uz palaist.

    2. Ierakstiet regeditun pēc tam noklikšķiniet uz Labi.

    3. Pārvietojiet atslēga HKEY_CLASSES_ROOT CLSID. Šajā atslēgā ir reģistrēta automatizācijas serveru sistēmas CLSID.

    4. Izmantot šādas vērtības CLSID atslēgas, lai atrastu atslēgas, kas atbilst Office programmu, kuru vēlaties automatizēt. Izpētiet LocalServer32 atslēgas CLSID atslēgas ceļš.

      Office server

      CLSID atslēgai

      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}

    5. Pārbaudiet, lai pārliecinātos, ka tā atbilst faktiskā atrašanās vieta faila ceļš.

    Piezīme. Īso ceļu nosaukumi var šķist pareizi, ja tās nav pareizas. Piemēram, gan Office un Microsoft Internet Explorer (ja tie tiek instalēti noklusējuma atrašanās vietā) ir īss ceļš, kas ir līdzīgs C:\PROGRA~1\MICROS~X\ (kur X ir skaitlis). Šis nosaukums nav sākotnēji var tikt parādīts īsajā ceļa nosaukumu. Lai noteiktu, vai ceļš ir pareizs, rīkojieties šādi:

    1. Noklikšķiniet uz Sāktun pēc tam noklikšķiniet uz palaist.

    2. Kopēt no reģistra vērtību un pēc tam ielīmējiet vērtību dialoglodziņā izpildīt . Piezīme. Noņemiet slēdzi /automation pirms programmas palaišanas.

    3. Noklikšķiniet uz Labi.

    4. Pārbaudiet, vai programma darbojas pareizi. Ja programma darbojas, pēc tam noklikšķiniet uz Labi, serveris ir pareizi reģistrēts. Ja lietojumprogramma nedarbojas pēc tam, kad noklikšķināt uz Labi, nomainiet LocalServer32 atslēgas vērtība ar pareizo ceļu. Ja jūs varat izmantot īss ceļš.

  • Iespējamo bojājumu veidne Normal. dot vai xlb resursu failu pārbaude. Problēmas var rasties, ja automatizēt Microsoft Word vai Microsoft Excel, ja ir bojāta veidne Normal. dot programmā Word vai Excel. xlb resursu failu programmā Excel. Lai pārbaudītu šos failus, meklēšanas gadījuma Normal. dot vai xlb vietējo cieto disku. Piezīme. Jūs varat atrast vairākas šo failu kopijas. Ir viena no katra no šiem failiem katra lietotāja profilam ir instalēta sistēma. Īslaicīgi pārdēvējiet failu Normal. dot vai xlb failus un pēc tam atkārtoti palaidiet automatizācijas tests. Programmas Word un Excel gan izveidotu šos failus, ja viņi nevar atrast. Pārbaudiet, vai darbojas kodu. Ja kods darbojas, veidojot jaunu failu Normal. dot, dzēsiet pārdēvēto failu. Šie faili ir bojāti. Ja kods nedarbojas, ir atjaunot šos failus saglabāt pielāgotu iestatījumus, šie faili tiek saglabāti sākotnējos failu nosaukumus.

  • Palaidiet lietojumprogrammu ar administratora kontu. Office serveriem nepieciešams Read/Write piekļuvi reģistra un disku. Office serveru neielādējas pareizi, ja pašreizējie drošības iestatījumi liegtu piekļuvi Read/Write.

Sistēmas pārbaude

Izveides procesā iestājies COM serveru problēmu var izraisīt arī sistēmas konfigurāciju. Lai novērstu, izmantojiet šādas metodes sistēmā, kurā kļūda:

  • Nosakiet, vai problēma rodas ar jebkuru procesu no servera. Ja jums ir lietojumprogramma, kas izmanto īpašu COM serveri (piemēram, Word), pārbaudiet procesu no citu serveri un pārliecinieties, vai šī problēma nav notiek COM slānis sevi. Ja nevarat izveidot procesu iestājies COM servera datorā, atkārtoti OLE sistēmas failus, kā aprakstīts šī raksta sadaļā "Atkārtoti instalējot Microsoft Office" vai atkārtoti instalēt operētājsistēmu, lai novērstu šo problēmu.

  • Izpētiet OLE sistēmas failus, kas vada automatizācijas versiju numuri. Šie faili parasti tiek instalēti kā kopu. Šie faili ir jāatbilst kompilāciju numuriem. Kļūdaini nepareizi konfigurēta uzstādīšanas utilīta failus var instalēt atsevišķi. Tas izraisa faili ir neatbilstoša. Izvairīties automatizācijas problēmu, pārbaudiet failu un pārliecinieties, vai failu pamatā ir jāatbilst. Automatizācijas faili atrodas direktorijā Windows\System32. Pārbaudiet šos failus.

    Faila nosaukums

    Versija

    Modificēšanas datums

    Asycfilt.dll

    10.0.16299.15

    29. septembris 2017

    Ole32.dll

    10.0.16299.371

    29. marts 2018

    Oleaut32.dll

    10.0.16299.431

    3 maija 2018

    Olepro32.dll

    10.0.16299.15

    29. septembris 2017

    Stdole2.tlb

    3.0.5014

    29. septembris 2017

    Lai pārbaudītu faila versija, ar peles labo pogu noklikšķiniet uz faila pārlūkprogrammā Windows Explorer un pēc tam noklikšķiniet uz Rekvizīti. Pierakstiet faila versijas (kompilācijas numurs) un faila pēdējās modificēšanas datums pēdējie četri cipari. Pārliecinieties, ka šīs vērtības ir vienāds automatizācijas failus. Piezīme. Šiem failiem ir 10 Windows versijas 1709, veidot 16299.431. Šie numuri un datumi ir tikai piemēri. Vērtības var atšķirties.

  • Izmantot sistēmas konfigurācijas utilītu (Msconfig.exe) pārbaudīt pakalpojumu un sistēmas startēšanas trešās puses programmām, kurām ir ierobežotas darbojošos kodu Office lietojumprogrammu. Lai iegūtu papildinformāciju par Msconfig.exe, skatiet šo Microsoft zināšanu bāzes rakstu:

    181966 Sistēmas konfigurācijas utilīta papildu problēmu novēršanas iestatījumi Piemēram, programmas Outlook automatizācija var neizdoties, jo izmantojat pretvīrusu programmu, kurai ir "skriptu bloķēšanas" līdzekļi. Piezīme. Atspējojiet pretvīrusu programmu tikai īslaicīgi testa sistēmā, kas nav savienots ar tīklu. Vai arī veiciet tālāk norādītās darbības programmā Outlook trešās puses pievienojumprogrammu atspējotu. Ja šī metode novērš šo problēmu, sazinieties ar trešo pušu pretvīrusu programmatūras papildinformāciju par pretvīrusu programmu atjauninājumu.

    1. Izvēlnē Fails noklikšķiniet uz Opcijasun pēc tam noklikšķiniet uz pievienojumprogrammas.

    2. Noklikšķiniet uz pārvaldīt COM pievienojumprogrammasun pēc tam noklikšķiniet uz Go. Piezīme. Tiek atvērts dialoglodziņš COM pievienojumprogrammas .

    3. Notīriet izvēles rūtiņu visus trešo pušu pievienojumprogrammas un pēc tam noklikšķiniet uz Labi.

    4. Restartējiet programmu Outlook.

Pārinstalējiet Office

Ja neviena no iepriekšējās procedūras atrisināt šo problēmu, noņemiet un pēc tam pārinstalējiet Office.

Lai iegūtu papildinformāciju, skatiet šo rakstuOffice:

Lejupielādējiet un instalējiet vai pārinstalējiet Office 365 vai Office 2016 PC vai Mac

Atsauces

Lai iegūtu papildinformāciju par Office automatizēšanu un kodu paraugi, skatiet šajā Microsoft vietnē:

Darba sākšana ar Office izstrādi

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?

Paldies par jūsu atsauksmēm!

×