Programoje „Excel“ naudojant komandą „CreateObject“ papildiniai neįkeliami

POŽYMIAI
Kai „Microsoft Excel“ atidarote kaip OLE automatizavimo objektą naudodami komandą CreateObject, neįkeliami papildiniai, kataloge XLStart esantys failai ir nauja numatytoji darbaknygė.
PRIEŽASTIS
Kai bandote įkelti papildinius ir failus, „Excel“ siunčia pranešimą kviečiančiajai programai, pavyzdžiui „Visual Basic“, kuri nėra pasirengusi atsakyti į užklausą ir negali bandyti dar kartą vėliau. Kviečiančioji programa gali nesugebėti susitvarkyti su šia užklausa ir tęsti darbo su kitomis komandomis.
PROBLEMOS SPRENDIMAS
„Microsoft“ pateikia tik programavimo pavyzdžius, tačiau nesuteikia jokių aiškių arba numanomų garantijų. Įskaitant numanomas perkamumo ar tinkamumo konkrečiam tikslui garantijas, bet tuo neapsiribojant. Šis straipsnis parašytas darant prielaidas, kad jūs mokate pateiktą programavimo kalbą ir esate susipažinęs su įrankiais, naudojamais procedūroms kurti ir derinti. „Microsoft“ palaikymo inžinieriai gali padėti paaiškindami tam tikros procedūros funkcinę galimybę. Tačiau jie nekeis šių pavyzdžių, kad numatytų papildomą funkcinę galimybę arba sukurtų jūsų reikalavimus atitinkančias procedūras.

Jei norite įkelti papildinio failą, kai programą „Excel“ paleidžiate kaip OLE automatizavimo objektą, įkelkite papildinį rankiniu būdu. Štai keli šio būdo pavyzdžiai.

„Microsoft Office Excel 2007“

Sub LoadAddin()   ' Matmens kintamasis xl kaip objekto tipas.   Dim xl As Object   ' Suaktyvinkite „Microsoft Excel“ ir priskirkite kintamąjį xl.   Set XL = CreateObject("Excel.Application")   ' Atidarykite reikiamą papildinio failą, šiame pavyzdyje – XLQUERY.XLAM.   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")   ' Jei reikia užregistruoti funkcijas ir komandas,   ' esančias ištekliuje (XLL), naudokite būdą „RegisterXLL“.   ' Toliau pateikiamame pavyzdyje visos „Analys32.xll“ funkcijos yra   ' užregistruotos.   ' XL.RegisterXLL "Analys32.xll"   ' Paleiskite bet kurią makrokomandą, esančią papildinio faile.   ' Atidarius failą automatinės makrokomandos negali būti paleidžiamos   ' naudojant atidarymo būdą.   XL.Workbooks("xlquery.xlam").RunAutoMacros 1   Set XL = Nothing End Sub				

„Microsoft Office Excel 2003“ ir ankstesnės „Excel“ versijos

Sub LoadAddin()   ' Matmens kintamasis xl kaip objekto tipas.   Dim xl As Object   ' Suaktyvinkite „Microsoft Excel“ ir priskirkite kintamąjį xl.   Set XL = CreateObject("Excel.Application")   ' Atidarykite reikiamą papildinio failą, šiame pavyzdyje – XLQUERY.XLA.   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")   ' Jei reikia užregistruoti funkcijas ir komandas,   ' esančias ištekliuje (XLL), naudokite būdą „RegisterXLL“.   ' Toliau pateikiamame pavyzdyje visos „Analys32.xll“ funkcijos yra   ' užregistruotos.   ' XL.RegisterXLL "Analys32.xll"   ' Paleiskite bet kurią makrokomandą, esančią papildinio faile.   ' Atidarius failą automatinės makrokomandos negali būti paleidžiamos   ' naudojant atidarymo būdą.   XL.Workbooks("xlquery.xla").RunAutoMacros 1   Set XL = Nothing End Sub				
DAUGIAU INFORMACIJOS
Kadangi „Excel“ neįkelia papildinių arba failų, esančių kataloge XLStart, kai iškviečiate jį kaip OLE automatizavimo objektą, turite užbaigti įkėlimo proceso valdymą. Jei norite, kad papildinys būtų įkeltas, jį galite įkelti rankiniu būdu.

Taip pasielgdami užtikrinsite, kad jokios makrokomandų klaidos, užrakintų arba tik skaitomų failų įspėjimai nesutrukdys įkelti „Excel“, kai ji bus iškviesta naudojant komandą CreateObject. Dar vienas tokių veiksmų pranašumas yra tas, kad „Excel“ bus įkeltas greičiau nei tai atliekama, kai įkeliami papildiniai arba failai.
NUORODOS
Jei norite gauti daugiau informacijos, kaip kreiptis pagalbos dėl „Visual Basic for Applications“, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite „Microsoft“ žinių bazės straipsnį:
226118 Išteklių, kuriais galite naudotis norėdami sužinoti apie „Visual Basic for Applications“ programavimą, sąrašas (Šis saitas gali nurodyti turinį, kuris visiškai arba iš dalies yra anglų kalba)
personal.xls personal macro workbook XL2000 XL2002 XL2003 XL2007
Savybės

Straipsnio ID: 213489 – Paskutinė peržiūra: 09/18/2011 23:18:00 – Peržiūra: 2.0

Microsoft Office Excel 2007, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft Excel 97 Standard Edition

  • kbautomation kbvba kbexpertiseinter kbdtacode kbprb kbprogramming KB213489
Atsiliepimai