Symptom

När Microsoft Excel läser in ett automationstillägg i cellredigeringsläge misslyckas Excel. Det här problemet uppstår bara med automationstillägg som har begärts inlästa i Excel.

Orsak

Det här problemet kan uppstå när ett tillägg läses in om tillägget visar ett formulär eller en dialogruta, eller om tillägget gör en automationsbegäran till Excel som försöker ändra excel-status. Följande lista innehåller exempel på automatiseringsbegäranden som kan göra att Excel misslyckas när det anropas när ett automationstillägg läses in under cellredigeringsläge:

  • Ändra den aktuella markeringen programmässigt. Till exempel:

    Application.ActiveSheet.Range("A1").Select
  • Anropa en egenskap eller metod för ett objekt i Windows-samlingen. Till exempel:

    Application.ActiveWindow.Zoom = 200
  • Ändra en Excel-inställning, till exempel beräkningsläget. Till exempel:

    Application.CalculationMode = xlManual

Alla dessa objekt är exempel på kodförsök för att ändra Excel-miljön, en arbetsbok eller ett kalkylblad. dessa typer av åtgärder tillåts inte i redigeringsläge.

Lösning

Prova inte de ovan nämnda åtgärderna när tillägget läses in. Tilläggsmetoder som anropas under inläsningen inkluderar metoden Initiera och, om automationstillägget implementerar gränssnittet IDTExtensibility2, metoderna OnConnection och OnStartupComplete.

Status

Microsoft har bekräftat att detta är en bugg i de Microsoft-produkter som listas i början av den här artikeln.

Mer information

Steg för att reproducera problem

  1. Starta ett nytt ActiveX DLL-projekt i Visual Basic.

  2. Klicka på Project1-egenskaper på Projekt-menyn. Ändra projektnamnet till TestAddIn och klicka sedan på OK.

  3. Lägg till följande kod i kodmodulen för Klass1:

    Private Sub Class_Initialize()    MsgBox "Class_Initialize"End Sub
  4. Skapa TestAddIn.dll.

  5. Starta en ny arbetsbok i Excel.

  6. Gör så här i Microsoft Office Excel 2003 eller Microsoft Excel 2002:

    1. Peka på Tillägg på Verktyg-menyn och klicka sedan på Automatisering.

    2. Klicka på TestAddIn.Class1 i listan och klicka sedan på OK.

    3. Klicka på OKi dialogrutan Tillägg.

    Gör så här i Microsoft Office Excel 2007:

    1. Klicka på Microsoft Office-knappen och sedan påExcel-alternativ.

    2. Klicka på fliken Tillägg .

    3. Klicka på Excel-tillägg i listan Hantera och klicka sedan på .

    4. Klicka påAutomationi dialogrutan Tillägg.

    5. Klicka på TestAddin.Class1 i listan och klicka sedan på OK.

    6. Klicka på OK.

  7. Skriv =a i valfri cell. En meddelanderuta med texten "Class_Initialize" visas.

  8. Klicka på OK för att stänga meddelanderutan. Excel fungerar inte efter några sekunder.

Referenser

Om du vill ha mer information klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:

291392 INFO: Com-tillägg och automationstillägg i Excel

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.