Artikel-id: 213489 - Visa produkter som artikeln gäller.
Visa alla | Dölj alla

På den här sidan

Symptom

När du öppnar Microsoft Excel som ett OLE-automationsobjekt med kommandot CreateObject läses varken tillägg, filer i XLStart-mappen eller den nya arbetsboken in.

Orsak

När du försöker läsa in tillägg och filer skickar Excel ett meddelande till det anropande programmet, exempelvis Visual Basic, om att det inte är redo att svara på förfrågan och det försöker igen senare. Det kan hända att det anropande programmet inte kan hantera förfrågan och fortsätter med övriga kommandon.

Workaround

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan förklara hur en viss procedur fungerar, men de ändrar inte exemplen för att utöka funktionerna och konstruera procedurer som motsvarar dina behov.

Om du ska läsa in en tilläggsfil när du kör Excel som ett OLE-automationsobjekt, måste du läsa in det manuellt. Exempel på den metoden följer här.

Microsoft Office Excel 2007

Sub LoadAddin()

   ' Dimensionvariabel xl som objekttyp.
   Dim xl As Object

   ' Aktivera Microsoft Excel och tilldela variabel xl.
   Set XL = CreateObject("Excel.Application")

   ' Öppna önskad tilläggsfil. I det här exemplet används XLQUERY.XLAM.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLAM")

   ' Om du behöver registrera funktioner och kommandon
   ' i en resurs (XLL), använder du RegisterXLL-metoden.
   ' I exemplet nedan registreras alla funktioner i
   ' Analys32.xll.
   ' XL.RegisterXLL "Analys32.xll"

   ' Kör automatiska makron i tilläggsfilen
   ' Automatiska makron körs inte när du öppnar en fil
   ' med hjälp av Open-metoden.
   XL.Workbooks("xlquery.xlam").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Microsoft Office Excel 2003 och tidigare versioner av Excel

Sub LoadAddin()

   ' Dimensionvariabel xl som objekttyp.
   Dim xl As Object

   ' Aktivera Microsoft Excel och tilldela variabel xl.
   Set XL = CreateObject("Excel.Application")

   ' Öppna önskad tilläggsfil. I det här exemplet används XLQUERY.XLA.
   XL.Workbooks.Open (XL.librarypath & "\MSQUERY\XLQUERY.XLA")

   ' Om du behöver registrera funktioner och kommandon
   ' i en resurs (XLL), använder du RegisterXLL-metoden.
   ' I exemplet nedan registreras alla funktioner i
   ' Analys32.xll.
   ' XL.RegisterXLL "Analys32.xll"

   ' Kör automatiska makron i tilläggsfilen
   ' Automatiska makron körs inte när du öppnar en fil
   ' med hjälp av Open-metoden.
   XL.Workbooks("xlquery.xla").RunAutoMacros 1

   Set XL = Nothing
 End Sub
				

Mer Information

Eftersom Excel inte läser in tillägg eller filer i mappen XLStart när du anropar den som ett OLE-automationsobjekt, har du fullständig kontroll över inläsningsprocessen. Om du vill att ett tillägg ska läsas in kan du läsa in det manuellt.

Detta funktionssätt innebär att inga makrofel, varningar för låsta filer eller varningar för skrivskyddade filer förhindrar att Excel läses in när det anropas med kommandot CreateObject. En annan fördel är att det går fortare att läsa in Excel än när tillägg eller filer läses in.

Referenser

Om du vill veta mer om hur du får hjälp för VBA (Visual Basic for Applications), klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
226118 Lista med resurser som du kan använda för att lära dig programmera i VBA (Visual Basic for Applications) (Länken kan leda till en webbplats som är helt eller delvis på engelska)

Egenskaper

Artikel-id: 213489 - Senaste granskning: den 18 september 2011 - Revision: 2.0
Informationen i denna artikel gäller:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
Nyckelord: 
kbautomation kbvba kbexpertiseinter kbdtacode kbprb kbprogramming KB213489

Ge feedback

 

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