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

P OŽ Y M I A I

Kai „Microsoft Excel“ atidarote kaip OLE automatizavimo objektą naudodami komandą CreateObject, neįkeliami papildiniai, kataloge XLStart esantys failai ir nauja numatytoji darbaknygė.

P R I EŽ A S T I S

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.

P R O B L E M O S S P R E N D I M A S

„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

D A U G I A U I N F O R M A C I J O S

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.

N U O R O D O S

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)
Savybės

Straipsnio ID: 213489 – Paskutinė peržiūra: 2011-09-18 – Peržiūra: 1

Atsiliepimai