Gaunate praginos klaida 429 jums automatizuoti Office programomis

Microsoft Office XP, Office 2000 ir Office 97 versiją šio straipsnio, žr. 244264 .

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 technologijos Automatizavimas objekto 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, kuri nors 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 klaidą 429 kliento kompiuteryje, naudokite šią informaciją, 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 sumažinti ir vienoje. Pavyzdžiui, galite naudoti išvestinis objektas kūrybos 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.ApplicationDim 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 naudojant naujas operatorius, kai jums sukurti "Office" programą.

    Funkcija CreateObject naudojama atidžiai žemėlapių kūrimo procesą, dauguma Microsoft Visual C ++ programų naudoti. Funkcija CreateObject naudojama taip pat leidžia pakeitimus į serverį tarp versijų CLSID. Galite naudoti funkciją CreateObjectobjektai 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, kuris
    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 per
    CreateObject arba Naujoji, gaunate klaidą 429. Pabaigoje gaunamo objekto naudoja į IDispatch sistemos sąsaja, nereikia užsakymą įgaliojimas transformuoti. Naudoti pabaigoje gaunamo objektą ir patikrinkite, ar š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 CreateObject arba Naujoji priežastis problema su serverio programos. Paprastai programos konfigūraciją arba nustatymą, taikymas sukelia problemą. Šalinti triktis, naudokite procedūras:
  • 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, o 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, o tada spustelėkite
      Vykdyti.
    2. Įveskite regedit, ir spustelėkite
      OK.
    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 ServerCLSID raktą
      Access.Application{73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
      Excel.Application{00024500-0000-0000-C000-000000000046}
      FrontPage.Application
      {04DF1015-7007-11D1-83BC-006097ABE675}
      Outlook.Application{0006F03A-0000-0000-C000-000000000046}
      PowerPoint.Application{91493441-5A91-11CF-8700-00AA0060263B}
      Word.Application{000209FF-0000-0000-C000-000000000046}
    5. Įsitikinkite, kad kelias atitinka faktinio failo vietą.
    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, o tada spustelėkite
      Vykdyti.
    2. Kopijuoti vertė iš registro ir įklijuokite vertė vykdyti dialogo lange.

      Pastaba. Paš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 programa veikia spustelėjus
      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 vietinių standžiųjų diskų visų egzempliorių Normal.dot arba Excel.xlb.

    Pastaba. Sistemų, kuriuose veikia Microsoft Windows 2000 arba sistemos, kuriuose veikia Microsoft Windows XP, 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, turite pervardyti šiuos failus į išsaugoti visus pasirinktinius parametrus, šie failai įrašomi failų pavadinimai.
  • Jei jūsų sistema veikia Windows 2000, 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ų su iš proceso COM serverių kūrimo. Šalinti triktis, naudokite šias procedūras sistemoje kai klaida įvyksta:
  • 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 yra ne su 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. Netinkamai sukonfigūruotas sąrankos priemonę galite netyčia įdiegti failus atskirai. Dėl nesutampa failų. Norėdami išvengti problemų su automatizavimo, tikrinamos failus įsitikinkite, kad failų komponavimo versijos yra sutampa.

    Automatizavimo failai yra kataloge Windows\System32 arba į Winnt\System32 katalogą. Patikrinkite šiuos failus.
    Failo vardasVersijaModifikavimo data
    Asycfilt.dll3.50.50142002 m. rugsėjo 04
    Oleaut32.dll3.50.50162002 m. rugsėjo 04
    Olepro32.dll5.0.50142002 m. rugsėjo 04
    Stdole2.tlb3.0.50142002 m. rugsėjo 04
    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į, paskutiniai keturi skaitmenys failo versija (komponavimo versijos numeris) ir paskutinio modifikavimo data. Įsitikinkite, kad šios reikšmės yra tas pats automatizavimo failai.

    Pastaba. Ankstesnės versijos numerius ir ankstesnė data yra gauta iš kompiuterio, kuriame naudojamas Windows Server 2003 kompiuteryje įdiegtas Office 2003. Šie skaičiai ir datos naudojami tik kaip pavyzdžiai. Jūsų reikšmės gali skirtis.

    Jei failai nesutampa komponavimo versijos numeriai arba modifikavimo datos, atsisiųskite savaime išsiskleidžiantį įrankis, kuris atnaujina automatizavimo failus.

    Jei norite gauti daugiau informacijos apie tai, kaip pasiekti paleista failus, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:

    235420 Vbrun60sp4.exe įdiegia Visual Basic 6.0 SP4 paleista failus

  • 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. Jei norite gauti daugiau informacijos apie Msconfig.exe, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:

    310560 kaip spręsti konfigūracijos klaidas naudojant sistemos konfigūravimo priemonę Windows XP

    Pvz., "Outlook" automatizavimo programos gali nesugebėti nes naudojate antivirusinę programą, kurią turi "scenarijų blocker" funkcijas.

    Pastaba. Tik išjungti antivirusinę programą laikinai į bandymo sistemą, kuri nėra prijungtas prie tinklo.

    Be to, atlikite šiuos veiksmus programoje Outlook išjungti trečiosios šalies papildinius:
    1. Meniu Įrankiai spustelėkite parinktys.
    2. Skirtuke kita spustelėkite Išplėstinės parinktys.
    3. Dialogo lange Papildomos parinktys spustelėkite Priedų tvarkymas.
    4. Spustelėdami išvalykite žymės langelį jokių trečiosios šalies papildinys.
    5. Iš naujo paleiskite "Outlook".
    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.

Iš naujo įdiegti Office

Jei nė vienas iš ankstesnės procedūros išspręsti šią problemą, pašalinkite Office ir iš naujo įdiegti Office. "Microsoft" rekomenduoja pašalinti esamos versijos pirmą kartą, ir iš naujo įdiekite tarnybos naudodami pradinį diegimo diskuose.

Norėdami gauti daugiau informacijos, spustelėkite šiuos straipsnių numerius ir perskaitykite „Microsoft“ žinių bazės straipsnius:

219423 kaip pašalinti Office 2000 CD1

158658 kaip pašalinti "Microsoft Office 97"

Nuorodos

Jei norite gauti daugiau informacijos apie trikčių diagnostiką "429" klaidos pranešimas, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:

240377 kaip užtikrinti Jet 3.5 yra įdiegtas (I dalis)

Jei norite gauti daugiau informacijos apie Office automatizavimas ir kodų pavyzdžius, apsilankykite šioje "Microsoft" svetainėje:
Savybės

Straipsnio ID: 828550 – Paskutinė peržiūra: 2017-02-08 – Peržiūra: 1

Microsoft Office Excel 2007, Microsoft Office SharePoint Designer 2007, Microsoft Office Outlook 2007, Microsoft Office Outlook 2003, Microsoft Office PowerPoint 2007, Microsoft Office PowerPoint 2003, Microsoft Office Word 2007, Microsoft Office Access 2007, Microsoft Office Access 2003, Microsoft Visual Basic 5.0 Enterprise Edition, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Visual Basic 5.0 Professional Edition

Atsiliepimai