Office ' i rakenduste automatiseerimise korral kuvatakse tõrketeade 429

Kehtib: Office 2016Office 2013

Kokkuvõte


Kui kasutate Microsoft Visual standardis Microsoft Office ' i rakenduse eksemplari loomiseks uut tehtemärki või CreateObject , võidakse kuvada järgmine tõrketeade:
Run-time error "429": ActiveX-komponent ei saa objekti luua
See tõrge ilmneb siis, kui Component Object Model (COM) ei saa luua taotletud automatiseerimise objekti ja automatiseerimise objekt on seetõttu kättesaamatu Visual algteadmised. Seda tõrget ei esine kõigis arvutites.Selles artiklis kirjeldatakse, kuidas diagnoosida ja lahendada levinud probleemid, mis võivad põhjustada selle tõrke.

Lisateave


Rakenduses Visual Standard on mitu tõrke 429 põhjust. Tõrge ilmneb juhul, kui mõni järgmistest tingimustest on täidetud. 
  • Rakenduses on viga.
  • Süsteemi konfiguratsioonis on viga.
  • Puuduv komponent on olemas.
  • Vigastatud komponent.
Tõrke põhjuse leidmiseks isoleerige probleem. Kui kliendi arvutis kuvatakse tõrketeade "429", kasutage Microsoft Office ' i rakendustes tõrke isoleerimiseks ja lahendamiseks järgmist teavet.Märkus. Mõned järgmistest andmetest võivad kehtida ka muudele Office COM ' i serveritele. See artikkel eeldab siiski, et soovite Office ' i rakendusi automatiseerida.

Tutvuge koodiga

Enne tõrke tõrkeotsingut proovige eraldada üks rida koodi, mis võib probleemi põhjustada.Kui avastate, et probleemi põhjuseks võib olla üks tekstirida, tehke järgmised toimingud. 
  • Veenduge, et kood kasutab otsest objektide loomist. Probleeme on lihtsam tuvastada, kui need on piiratud ühe toiminguga. Näiteks otsitakse kaudsete objektide loomist, mida kasutatakse ühe järgmisena. Kood proovi 1
    Application.Documents.Add 'DON'T USE THIS!!
    Kood proovi 2
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!'... some other codeoWordApp.Documents.Add
    Mõlemad koodid proovivad kasutada kaudsete objektide loomist. Microsoft Office Word 2003 ei käivitu enne, kui muutujat nimetatakse vähemalt ühe korra. Kuna muutujat võib nimetada programmi eri osades, võib probleem olla raskesti leitav. Võib olla raske veenduda, et probleem tekib siis, kui rakendusobjekti loomisel või dokumendi objekt on loodud. Selle asemel saate teha selgesõnalised kõned iga objekti eraldi loomiseks järgmiselt.
    Dim oWordApp As Word.ApplicationDim oDoc As Word.DocumentSet oWordApp = CreateObject("Word.Application")'... some other codeSet oDoc = oWordApp.Documents.Add
    Kui teete selgesõnalised kõned iga objekti eraldi loomiseks, on probleem hõlpsam isoleerida. See võib muuta ka koodi hõlpsamaks lugemiseks.
  • Kasutage funktsiooni CreateObjectuue tehtemärgi asemel, kui loote Office ' i rakenduse eksemplari. Funktsioon CreateObject on tihedalt vastendatud loomise protsessiga, mida enamik Microsoft Visual C++ kliendid kasutavad. Funktsioon CreateObjectlubab ka muuta serveri CLSID-i versioone versioonide vahel. Funktsiooni CreateObjectsaate kasutada varajaselt seotud objektide ja hilinenud seotud objektide korral.
  • Veenduge, et "ProgID" string, mis edastatakse CreateObject on õige ja veenduge, et string "ProgID" on iseseisev versioon. Näiteks kasutage stringi "Excel. Application" asemel stringi "Excel. Application" asemel funktsiooni "Excel. Application". Süsteem, mis nurjub, võib olla Microsoft Office ' i varasem versioon või Microsoft Office ' i uuem versioon, kui see versioon, mille olete määranud stringi "ProgID".
  • Käsu ERL abil saate teada, mis on selle rea reanumber, mis ei õnnestu. See võib aidata teil siluda rakendusi, mida ei saa kasutada IDE-s. Järgmine kood annab teada, millist automatiseerimise objekti ei saa luua (Microsoft Word või 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
    Tõrke jälgimiseks kasutage funktsiooni MsgBox ja rea numbrit.
  • Kasuta hilisem sidumist järgmiselt.
    Dim oWordApp As Object
    Varajaselt seotud objektid nõuavad, et nende kohandatud liidesed oleksid üle protsessi piiride marssalid. Kui kohandatud liidest ei saa CreateObject ajal või uutelaastatel marshaled, kuvatakse tõrketeade "429". Hilinemisega seotud objekt kasutab IDispatch süsteemi määratletud kasutajaliidest, mille korral pole vaja kohandatud puhverserverit marssali jaoks. Kui soovite kontrollida, kas see toiming töötab õigesti, kasutage hilist köidetud objekti. Kui probleem ilmneb ainult siis, kui objekt on varaga seotud, on probleem serveri rakenduses. Tavaliselt saate selle probleemi lahendamiseks installida rakenduse, nagu on kirjeldatud käesoleva artikli jaotises "kontrolli automatiseerimise serverit".

Automatiseerimise serveri uurimine

Kõige tavalisem põhjus tõrke tekkimiseks, kui kasutate CreateObject või uut , on probleem, mis mõjutab Serveri rakendust. Tavaliselt põhjustab rakenduse konfiguratsioon või rakenduse häälestamine probleemi. Tõrkeotsingu sooritamiseks kasutage järgmisi meetodeid.

  • Veenduge, et Office ' i rakendus, mille soovite automatiseerida, on installitud kohalikus arvutis. Veenduge, et saaksite rakendust käivitada. Selleks klõpsake nuppu Start, nuppu Käivitageja proovige siis rakendust käivitada. Kui te ei saa rakendust käsitsi käivitada, siis rakendus ei tööta automatiseerimise kaudu.
  • Registreerige rakendus uuesti järgmiselt.  
    1. Klõpsake nuppu Start ja seejärel käsku Käivita.
    2. Tippige dialoogiboksi käivitamine serveri tee ja seejärel lisage rea lõppu /RegServer .
    3. Klõpsake nuppu OK. Rakendus töötab vaikselt. Rakendus on uuesti registreeritud COM-serverina.
    Kui probleem ilmneb seetõttu, et registrivõti on puudu, parandatakse need toimingud tavaliselt probleemi lahendamiseks.
  • Uurige LocalServer32 võtit selle rakenduse CLSID all, mida soovite automatiseerida. Veenduge, et LocalServer32 võti viitaks rakenduse õigele asukohale. Veenduge, et tee nimi oleks lühikeses tee (DOS 8,3) vormingus. Te ei pea serveri registreerimiseks kasutama lühikest tee nime. Kuid pikk tee nimed, mis sisaldavad manustatud tühikuid võib põhjustada probleeme mõnes süsteemis. Serverile salvestatud tee-võtme uurimiseks käivitage Windowsi registriredaktor järgmiselt.  
    1. Klõpsake nuppu Start ja seejärel käsku Käivita.
    2. Tippige käsk regeditja klõpsake siis nuppu OK.
    3. Liikuge HKEY_CLASSES_ROOT \CLSID klahvile. Süsteemis registreeritud automatiseerimise serverite CLSID on selle võtme all.
    4. Office ' i rakendust esindava võtme leidmiseks kasutage järgmisi CLSID-võtme väärtusi. Uurige tee jaoks CLSID-võtme LocalServer32 võtit.  
      Office ' i server CLSID-klahv
      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. Kontrollige teed veendumaks, et see vastab faili tegelikule asukohale.
    Märkus. Lühikesed tee nimed võivad tunduda õiged, kui need pole õiged. Näiteks nii Office kui ka Microsoft Internet Explorer (kui need on installitud nende vaikeasukohta) on lühike tee, mis sarnaneb C:\PROGRA ~ 1 \ MICROs ~X\ (kus X on arv). See nimi ei pruugi esialgu tunduda lühike tee nimi. Kui soovite kindlaks teha, kas tee on õige, tehke järgmist.  
    1. Klõpsake nuppu Start ja seejärel käsku Käivita.
    2. Kopeerige registrist väärtus ja seejärel kleepige dialoogiboksis Käivita väärtus. Märkus. Enne rakenduse käivitamist eemaldage /Automation lüliti.
    3. Klõpsake nuppu OK.
    4. Veenduge, et rakendus töötab õigesti. Kui rakendus käivitub pärast nupu OKklõpsamist, registreeritakse server õigesti. Kui rakendus ei käivitu pärast nupu OKklõpsamist, asendage LocalServer32 võtme väärtus õige teega. Saate kasutada lühikese tee nime.
  • Testige rakenduse Normal. dot või Excel. xlb võimalikku korruptsiooni. Microsoft Wordi või Microsoft Exceli automatiseerimisel ilmnevad probleemid võivad ilmneda siis, kui Wordis või Excel. xlb-i ressursi failis on vigane. Nende failide testimiseks otsige kohalikust kõvakettast kõiki tavalisi. dot või Excel. xlb. Märkus. Need failid võivad leida mitmest koopiast. Iga arvutisse installitud kasutajaprofiili jaoks on üks eksemplar igast failist. Nimetage ajutiselt ümber Normal. dot failid või Excel. xlb failid ja seejärel käivitage automatiseerimise test uuesti. Word ja Excel loovad mõlemad failid, kui nad ei leia neid. Veenduge, et kood töötaks. Kui kood töötab uue Normal. dot faili loomisel, kustutage need failid, mille olete ümber nimetanud. Need failid on rikutud. Kui kood ei tööta, peate need failid algsete failinimede juurde taastama, et salvestada nendesse failidesse salvestatud kohandatud sätted.
  • Käivitage rakendus administraatori konto all. Office ' i serverid nõuavad registrist ja kettadraivist lugemis-ja kirjutuskaitstud juurdepääsu. Office ' i servereid ei pruugita õigesti laadida, kui teie praegused turvasätted keelavad lugemise/kirjutamise juurdepääsu.

Uurige süsteemi

Süsteemi konfiguratsioon võib põhjustada probleeme ka aegunud COM-serverite loomisega. Tõrkeotsingu sooritamiseks kasutage süsteemi, kus tõrge ilmneb, järgmisi meetodeid.

  • Määratlege, kas probleem ilmneb mis tahes out-of-Process server. Kui teil on rakendus, mis kasutab teatud COM-serverit (nt Word), testige mõnda muud out-of-Process serverit, et veenduda, et probleem ei esine COM-kihis ise. Kui te ei saa arvutis luua väljasoleku COM-serverit, installige OLE-süsteemi failid uuesti, nagu on kirjeldatud käesoleva artikli jaotises "Microsoft Office ' i taasinstallimine", või installige opsüsteem uuesti selle probleemi lahendamiseks.
  • Uurige automatiseerimist haldavate OLE-süsteemifailide versioonide numbreid. Need failid installitakse tavaliselt komplektina. Need failid peavad vastama järgu numbritele. Valesti konfigureeritud häälestuse utiliit võib failid eraldi installida. See põhjustab failide mittevastavuse. Automatiseerimisega seotud probleemide vältimiseks uurige faile, et veenduda, kas failide koostamine on vastendatud. Automatiseerimise failid asuvad Windows\System32 kataloogis. Uurige järgmisi faile.  
    Failinimi Versioon Muutmiskuupäev
    Asycfilt.dll 10.0.16299.15 September 29, 2017
    Ole32.dll 10.0.16299.371 Märts 29, 2018
    Oleaut32.dll 10.0.16299.431 3. mai 2018
    Olepro32.dll 10.0.16299.15 September 29, 2017
    Stdole2.tlb 3.0.5014 September 29, 2017
    Kui soovite vaadata failiversiooni, paremklõpsake seda Windows Exploreris ja seejärel klõpsake käsku Atribuudid. Pange tähele, et failiversiooni on neli viimast numbrit (järgu number) ja kuupäeva, millal failid viimati muudeti. Veenduge, et need väärtused oleks kõigi automatiseerimise failidega ühesugused. Märkus. Järgmised failid on Windows 10 versiooni 1709, järk 16299,431. Need arvud ja kuupäevad on ainult näited. Teie väärtused võivad olla teistsugused.  
  • Kasutage süsteemi konfigureerimise utiliiti (Msconfig. exe), et tutvuda teenuste ja süsteemi käivitamisega kolmanda osapoole rakendustes, mis võivad piirata Office ' i rakenduses töötava koodi. Lisateavet msconfig. exe kohta leiate järgmisest Microsofti teabebaasi artiklist.
    181966 Süsteemi konfigureerimise utiliidi Täpsemad tõrkeotsingu sätted
    Näiteks ei pruugi Outlooki automatiseerimise rakendused ebaõnnestuda, kuna kasutate viirusetõrjeprogrammi, millel on "skripti blokeerija" funktsioonid. Märkus. Keelake viirusetõrjeprogramm ajutiselt ainult test-süsteemis, mis pole võrguga ühendatud. Teise tootja lisandmoodulite keelamiseks tehke Outlookis järgmist. Kui see meetod lahendab probleemi, pöörduge viirusetõrjeprogrammi värskenduse kohta lisateabe saamiseks kolmanda osapoole viirusetõrjetarkvara tarnija poole.  
    1. Klõpsake menüüs pilt nuppu Suvandidja seejärel nuppu lisandmoodulid.
    2. Klõpsake nuppu Halda com-lisandmooduleidja seejärel nuppu Ava. Märkus. Avaneb dialoogiboks com- lisandmoodulid.
    3. Tühjendage kõigi muude tootjate lisandmoodulite märkeruudud ja klõpsake siis nuppu OK.
    4. Taaskäivitage Outlook.

Office ' i uuesti installimine

Kui ükski eelmistest protseduuridest ei lahenda probleemi, eemaldage Office ja installige see siis uuesti.

Lisateavet leiate artiklist järgmine Office ' i artikkel.

Viited


Lisateavet Office ' i automatiseerimise ja koodi näidiste kohta leiate järgmiselt Microsofti veebisaidilt: