Не се зареждат добавки, когато се използва командата CreateObject в Excel

СИМПТОМИ

Когато получите достъп до Microsoft Excel като обект на OLE Automation чрез командата CreateObject, добавките (файлове, които се намират в директорията XLStart) и работната книга по подразбиране не се зареждат.

ПРИЧИНА

Когато се опитате да заредите добавки и файлове, Excel изпраща съобщение към викащото приложение, като например Visual Basic, което не е готово да отговори на заявката и да направи по-късно повторен опит. Възможно е викащото приложение да не може да обработи тази заявка и да продължи с останалите команди.

ЗАОБИКАЛЯНЕ

Microsoft предоставя примери на софтуерен код само за илюстративни цели без изрично споменати или подразбиращи се гаранции. Това включва като минимум подразбиращите се гаранции за продаваемост или пригодност за друга конкретна цел. Подразбира се, че сте запознати с демонстрирания език за програмиране и инструментите, използвани за създаване на процедури и отстраняване на програмни грешки в тях. Инженерите по поддръжка на Microsoft могат да ви съдействат с обяснение на функциите на конкретна процедура. Те няма да модифицират тези примери с цел предоставяне на допълнителна функционалност или създаване на процедури за удовлетворение на конкретните ви изисквания.

За да заредите файл на добавка, когато стартирате Excel като обект на OLE Automation, заредете добавката ръчно. Следват примери за този метод.

Microsoft Office Excel 2007

Sub LoadAddin()

' Задайте променливата xl като тип обект.
Dim xl As Object

' Активирайте Microsoft Excel и го задайте в променливата xl.
Set XL = CreateObject("Excel.Application")

' Отворете файла на желаната добавка – в този пример XLQUERY.XLAM.
XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")

' Ако трябва да регистрирате функциите и командите,
' които се съдържат в ресурс (XLL), използвайте метода RegisterXLL.
' В примера по-долу всички функции на Analys32.xll са
' регистрирани.
' XL.RegisterXLL "Analys32.xll"

' Стартирайте всички автоматични макроси във файла на добавката
' Автоматичните макроси не се изпълняват, когато отворите файл
' чрез метода Open.
XL.Workbooks("xlquery.xlam").RunAutoMacros 1

Set XL = Nothing
End Sub

Microsoft Office Excel 2003 и по-стари версии на Excel

Sub LoadAddin()

' Задайте променливата xl като тип обект.
Dim xl As Object

' Активирайте Microsoft Excel и го задайте в променливата xl.
Set XL = CreateObject("Excel.Application")

' Отворете файла на желаната добавка – в този пример XLQUERY.XLA.
XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")

' Ако трябва да регистрирате функциите и командите,
' които се съдържат в ресурс (XLL), използвайте метода RegisterXLL.
' В примера по-долу всички функции на Analys32.xll са
' регистрирани.
' XL.RegisterXLL "Analys32.xll"

' Стартирайте всички автоматични макроси във файла на добавката
' Автоматичните макроси не се изпълняват, когато отворите файл
' чрез метода Open.
XL.Workbooks("xlquery.xla").RunAutoMacros 1

Set XL = Nothing
End Sub

ДОПЪЛНИТЕЛНА ИНФОРМАЦИЯ

Тъй като Excel не зарежда добавки или файлове в директорията XLStart, когато го извикате като обект на OLE Automation, имате пълен контрол над процеса на зареждане. Ако искате да се зареди добавка, можете да я заредите ръчно.

Това поведение означава също, че никакви грешки в макросите, известия за заключени файлове или известия за файлове "само за четене" не пречат на зареждането на Excel, когато той се извиква чрез командата CreateObject. Друго предимство на това поведение, че е необходимо по-малко време за зареждането на Excel в сравнение със случая, когато се зареждат добавки или файлове.

БИБЛИОГРАФИЯ

За допълнителна информация относно получаването на помощ за Visual Basic for Applications щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

226118 Списък на наличните ресурси, които могат да ви помогнат да се научите да програмирате с Visual Basic for Applications (Тази връзка може да сочи към съдържание, което е отчасти или изцяло на английски)
Свойства

ИД на статията: 213489 – Последен преглед: 10.01.2017 г. – Редакция: 1

Обратна връзка