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

Преводи на статии Преводи на статии
ID на статията: 213489 - Преглед на продукти, за които се отнася тази статия.
Разгъване на всички | Сгъване на всички

На тази страница

СИМПТОМИ

Когато получите достъп до 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 (Тази връзка може да сочи към съдържание, което е отчасти или изцяло на английски)

Свойства

ID на статията: 213489 - Последна рецензия: 18 септември 2011 г. - Редакция: 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

Изпратете обратна информация

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com