Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

Santrauka

Naudojant New operatorius arba funkcija CreateObject naudojama Microsoft Visual Basic sukurti iš "Microsoft Office" programą, galite gauti tokį klaidos pranešimą:

Vykdymo laiko klaida "429": ActiveX komponentas negali sukurti objekto

Ši klaida įvyksta, kai Komponentinio objektų modelio (COM) negali sukurti prašomos technologijos Automatizavimas objekto, ir automatizavimo objektą, todėl nėra į Visual Basic. Ši klaida įvyksta ne visuose kompiuteriuose. Šiame straipsnyje aprašoma, kaip diagnozuoti ir išspręsti dažnai pasitaikančias problemas, kurios gali sukelti šią klaidą.

Daugiau informacijos

Visual Basic, yra kelios priežastys klaidos 429. Klaida įvyksta, jei tenkinama bent viena iš šių sąlygų:

  • Taikomosios programos yra klaida.

  • Yra klaida sistemos konfigūracijos.

  • Yra dėl trūkstamo komponento.

  • Yra sugadintas komponentas.

Norėdami sužinoti klaidos priežastį, izoliuoti problema. Jei gaunate "429" klaidos pranešimą kliento kompiuteryje, naudokite šią informaciją Norėdami nustatyti ir ištaisyti klaidą, "Microsoft Office" programose. Pastaba Kai kurie iš ši informacija taip pat gali kreiptis į Office COM serveriai. Tačiau šiame straipsnyje daroma prielaida, kad jūs norite automatizuoti Office programomis.

Patikrinkite kodą

Prieš jums pašalinti klaidą, pabandyti išskirti vieną eilutę kodo, kad gali būti sukelia problemą. Jei pastebėsite, kad viena eilutė kodo gali kelti problemą, atlikite šiuos veiksmus:

  • Įsitikinkite, kad kodas naudoja aiškaus objekto sukūrimas. Problemos yra lengviau nustatyti, ar jie yra susiaurinti vienoje. Pvz., patikrinkite, ar išvestinis objektas kūrybos, kuris naudojamas kaip vieną iš toliau nurodytų veiksmų. Kodo pavyzdys 1

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

    Kodo pavyzdys 2

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

    Abu šiuos kodo pavyzdžių naudoti išvestinis objektas kūrybos. Microsoft Office Word 2003 neprasideda tol, kol kintamasis vadinamas ne mažiau kaip vieną kartą. Nes kintamasis vadinamas įvairiose programa, problema gali būti sudėtinga rasti. Gali būti sunku patikrinti, ar problema kyla, kai programos objektas yra sukurtas arba dokumento objektas yra sukurtas. Vietoj to, galite aiškiai ragina sukurti kiekvieno objekto atskirai, taip.

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

    Kai aiškiai ragina sukurti kiekvieno objekto atskirai, problema yra lengviau nustatyti. Tai gali taip pat padaryti kodas lengviau skaityti.

  • Naudokite funkcija CreateObject naudojama vietoj naujas operatorius, kai galite sukurti "Office" programą. Funkcija CreateObject naudojama atidžiai žemėlapių kūrimo procesą, dauguma Microsoft Visual C ++ programų naudoti. CreateObjectfunkcija taip pat leidžia pakeitimus į serverį tarp versijų CLSID. Galite naudoti CreateObjectfunkcija objektai ir vėlai susiję objektai.

  • Patikrinkite, ar "ProgID", kuris yra perduodamas į CreateObject yra teisingas, ir tada patikrinkite, ar "ProgID" eilutė yra versija nepriklausoma. Pvz., naudokite "Excel.Application" eilutė vietoj "Excel.Application.8" eilutę. Sistemos, kad nepavyksta gali turėti senesnę versiją Microsoft Office ar naujesnės versijos Microsoft Office nei versija, kurią nurodėte "ProgID" eilutė.

  • Naudokite komandą Erl pranešti į kodo eilutę, kad nepavyksta eilutės numeris. Tai gali padėti derinti programas, kurios negali paleisti IDE. Šį kodą pasakys kokia automatizavimas objekto negalima sukurti (Microsoft Word arba 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

    Naudokite funkciją MsgBox ir eilutės numeris klaida.

  • Naudokite vėlesnysis susiejimas taip:

    Dim oWordApp As Object

    Objektai reikia savo vartotojo sąsajas transformuoti kitas procesas. Jei vartotojo sąsaja negali būti marshaledCreateObject arba Naujoji , gausite "429" klaidos pranešimas. Pabaigoje gaunamo objekto naudoja į IDispatch sistemos sąsaja, nereikia užsakymą įgaliojimas transformuoti. Naudokite pabaigoje gaunamo objekto įsitikinti, kad ši procedūra veikia tinkamai. Jei problema kyla tik tada, kai objektas yra anksti apribotus, problema yra serverio programa. Paprastai, galite įdiegti programą kaip aprašyta skyriuje "Išnagrinėti Automation serveris" šio straipsnio Norėdami išspręsti šią problemą.

Išnagrinėti automation serveris

Dažniausiai pasitaikančios klaidos gali kilti naudojant CreateObject arba Naujoji priežastis problema, kuri turi įtakos serverio taikomosios programos. Paprastai programos konfigūraciją arba nustatymą, taikymas sukelia problemą. Šalinti triktis, naudokite šį būdų:

  • Patikrinkite, ar įdiegta "Office" programa, kurią norite automatizuoti vietiniame kompiuteryje. Įsitikinkite, kad jūs galite paleisti taikomąją programą. Norėdami tai padaryti, spustelėkite pradėti, spustelėkite Vykdyti, ir bandykite paleisti programą. Jei negalite rankiniu būdu paleisti taikomąją programą, taikant per automatizavimo neveiks.

  • Iš naujo užregistruokite programa taip:

    1. Spustelėkite pradėti, ir tada spustelėkite vykdyti.

    2. Dialogo lange vykdyti įveskite serverio ir tada pridėti/RegServer į eilutės pabaigą.

    3. Spustelėkite Gerai. Programa veikia tyliai. Prašoma iš naujo registruoti kaip COM serverio.

    Jei problema kyla dėl to, kad registro rakto nėra, šiuos veiksmus paprastai ištaisyti problemą.

  • Ištirti LocalServer32 rakte pagal CLSID, taikomosios programos, kurią norite automatizuoti. Įsitikinkite, kad LocalServer32 raktas nurodo tinkamą vietą taikomajai programai. Patikrinkite, ar maršrutas vardas trumpus maršruto (DOS 8.3) formatu. Jums nereikia registruotis trumpus maršruto pavadinimą. Tačiau, ilgi maršruto pavadinimai, kuriuose yra įdėtasis tarpų gali sukelti problemų kai kuriose sistemose. Patikrinti kelias raktą, kuris yra saugomas serverio, paleiskite Windows registro redaktorių, taip:

    1. Spustelėkite pradėti, ir tada spustelėkite vykdyti.

    2. Įveskite regedit, ir tada spustelėkite gerai.

    3. Perkelti į HKEY_CLASSES_ROOT\CLSID klavišą. CLSID už registruotą automatizavimo serveriai sistemos yra pagal šį raktą.

    4. Naudokite šias reikšmes CLSID raktą rasti raktą, kuris yra "Office" programa, kurią norite automatizuoti. Ištirti LocalServer32 rakte kelias CLSID raktą.

      Office server

      CLSID raktą

      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. Patikrinkite ir įsitikinkite, kad jis atitiktų faktinę vietą failo kelią.

    Pastaba Trumpus maršruto pavadinimus gali atrodyti teisinga, kai jie yra neteisingi. Pvz., Office ir "Microsoft" Internet Explorer (jei jie yra įdiegta savo numatytosios vietos) yra trumpas kelias, kuris yra panašus į C:\PROGRA~1\MICROS~X\ (kur X yra skaičius). Šis pavadinimas gali ne iš pradžių gali būti trumpus maršruto pavadinimas. Norėdami nustatyti, ar kelias yra teisingas, atlikite šiuos veiksmus:

    1. Spustelėkite pradėti, ir tada spustelėkite vykdyti.

    2. Kopijuoti vertė iš registro ir įklijuokite vertė vykdyti dialogo lange. PastabaPašalinti/Automation jungiklis, kol galite paleisti programą.

    3. Spustelėkite Gerai.

    4. Įsitikinkite, kad programos veiktų tinkamai. Jei taikant veikia kai spustelėsite gerai, teisingai įregistruota serverio. Jei taikant veikia kai spustelėsite gerai, pakeisti LocalServer32 rakto reikšmė teisingą kelią. Jei galite, Naudokite trumpus maršruto pavadinimą.

  • Patikrinkite galima sugadinti šabloną Normal.dot arba failo Excel.xlb išteklių. Problemų gali kilti, kai jums automatizuoti "Microsoft" Word "arba" Microsoft Excel jei sugadintas arba Normal.dot šabloną programoje "Word" arba "Excel" failo Excel.xlb išteklių. Norėdami patikrinti šiuos failus, ieškoti vietos standžiuosius diskus visų egzempliorių Normal.dot arba Excel.xlb. Pastaba Galite rasti keletą šių failų kopijas. Yra viena kopija, kiekvieną iš šių failų kiekvieno vartotojo profilis, kuriame įdiegta sistema. Laikinai Pervadinkite Normal.dot failus arba Excel.xlb failus, ir tada iš naujo paleiskite savo automatizavimo bandymas. Word ir "Excel" ir sukurti šių failų, jei jie negali rasti juos. Įsitikinkite, kad kodas veikia. Jei kodas veikia sukūrus naują Normal.dot failą, panaikinkite failus, kuriuos pervardijote. Šie failai yra sugadinti. Jei kodas neveikia, būtina atkurti šiuos failus, Norėdami išsaugoti visus pasirinktinius parametrus, šie failai įrašomi failų pavadinimai.

  • Paleisti programa pagal administratoriaus abonementą. Office serverių reikia skaitymo/rašymo prieigą prie registro ir disko. Office serverių gali būti įkeltas teisingai jei dabartiniai saugos parametrai atmesti skaitymo/rašymo prieigą.

Nuolaidų sistemos

Sistemos konfigūracija taip pat gali sukelti problemų iš proceso COM serverių kūrimo. Šalinti triktis, naudokite šiuos metodus kompiuteryje, kuriame yra klaida:

  • Nustatykite, ar problema kyla dėl bet kurio iš proceso serverio. Jei turite programą, kuri naudoja ypatingą COM serverio (pvz., Word), išbandyti kitą iš proceso serverį įsitikinkite, kad problema nėra, esančių COM sluoksnis pati. Jei kompiuteryje, negalite sukurti iš proceso COM serverio, iš naujo įdiekite OLE sistemos failai, kaip aprašyta šio straipsnio skyriuje "Iš naujo įdiegti Microsoft Office", arba iš naujo įdiegti operacinę sistemą, Norėdami išspręsti šią problemą.

  • Išnagrinėti versijų numeriai OLE sistemos failai, tvarkyti automatizavimas. Paprastai šie failai įdiegiami kaip rinkinys. Šie failai turi atitikti komponavimo versijos numeriai. Yra netinkamai sukonfigūruotas sąrankos priemonę galite netyčia įdiegti failus atskirai. Dėl nesutampa failų. Norėdami išvengti problemų automatizavimo, tikrinamos failus įsitikinkite, kad failų komponavimo versijos yra sutampa. Automatizavimo failai yra aplanke Windows\System32 katalogas. Patikrinkite šiuos failus.

    Failo vardas

    Versija

    Modifikavimo data

    Asycfilt.dll

    10.0.16299.15

    Rugsėjo 29, 2017

    Ole32.dll

    10.0.16299.371

    2018 m. kovo 29 d.

    Oleaut32.dll

    10.0.16299.431

    2018 m. gegužės 3 d.

    Olepro32.dll

    10.0.16299.15

    Rugsėjo 29, 2017

    Stdole2.tlb

    3.0.5014

    Rugsėjo 29, 2017

    Norėdami patikrinti failo versiją, dešiniuoju pelės mygtuku spustelėkite failą programoje "Windows Explorer", ir tada spustelėkite Ypatybės. Atkreipkite dėmesį į rinkmenos versiją (komponavimo versijos numeris) ir paskutinio modifikavimo data paskutiniai keturi skaitmenys. Įsitikinkite, kad šios reikšmės yra tas pats automatizavimo failai. Pastaba Šie failai yra Windows 10 versijos 1709, sukurti 16299.431. Šie skaičiai ir datos yra tik pavyzdžiai. Jūsų reikšmės gali skirtis.

  • Naudodami sistemos konfigūravimo priemonę (Msconfig.exe) išnagrinėti paslaugos ir sistemos paleisties trečiosios šalies programų, kurios gali apriboti veiklos kodas – Office taikomoji programa. Daugiau informacijos apie Msconfig.exe, ieškokite šioje "Microsoft" žinių bazės straipsnį:

    181966 Sistemos konfigūravimo priemonę išplėstinės trikčių diagnostikos parametrai Pvz., "Outlook" automatizavimo programos gali nesugebėti nes naudojate antivirusinę programą, kurią turi "scenarijų blocker" funkcijas. Pastaba Išjunkite antivirusinę programą, tik laikinai bandymo kompiuteryje, kuriame nėra prijungtas prie tinklo. Be to, atlikite šiuos veiksmus programoje Outlook išjungti trečiosios šalies papildinius: Jei šis būdas padėjo išspręsti problemą, kreipkitės į trečiųjų šalių antivirusinės programos plačiau apie antivirusinės programos atnaujinimas.

    1. Meniu failas spustelėkite parinktysir spustelėkite priedai.

    2. Spustelėkite tvarkyti COM papildinius, ir spustelėkite eiti. Pastaba COM papildiniai dialogo langas.

    3. Išvalykite žymės langelį jokių trečiosios šalies papildinys, ir tada spustelėkite gerai.

    4. Iš naujo paleiskite "Outlook".

Iš naujo įdiegti Office

Jei nė vienas iš ankstesnės procedūros išspręsti šią problemą, pašalinkite ir iš naujo įdiegti Office.

Jei norite gauti daugiau informacijos, žr. straipsnįOffice:

Atsisiųsti ir įdiegti arba iš naujo įdiegti "Office 365" arba Office 2016 PC arba "Mac"

Nuorodos

Jei norite gauti daugiau informacijos apie Office automatizavimas ir kodų pavyzdžius, rasite apsilankę šioje "Microsoft" svetainėje:

Darbo pradžia su Office kūrimas

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×