Problembeschreibung

Wenn Microsoft Excel ein Automation-Add-In während des Zellbearbeitungsmodus lädt, schlägt Excel fehl. Dieses Problem tritt nur bei Automatisierungs-Add-Ins auf, die in Excel geladen wurden.

Ursache

Dieses Problem kann auftreten, wenn ein Add-In geladen wird, wenn das Add-In ein Formular oder Dialogfeld anzeigt, oder wenn das Add-In eine Automatisierungsanforderung an Excel sendet, die versucht, den Zustand von Excel zu ändern. Die folgende Liste enthält Beispiele für Automatisierungsanforderungen, die dazu führen können, dass Excel fehlschlägt, wenn es aufgerufen wird, während ein Automation-Add-In während des Zellbearbeitungsmodus geladen wird:

  • Programmgesteuertes Ändern der aktuellen Auswahl. Beispiel:

    Application.ActiveSheet.Range("A1").Select
  • Rufen Sie eine Eigenschaft oder Methode eines Elements in der Windows-Auflistung auf. Beispiel:

    Application.ActiveWindow.Zoom = 200
  • Ändern sie eine Excel-Einstellung, z. B. den Berechnungsmodus. Beispiel:

    Application.CalculationMode = xlManual

Alle diese Elemente sind Beispiele für Codeversuche, die Excel-Umgebung, eine Arbeitsmappe oder ein Arbeitsblatt zu ändern. Diese Arten von Aktionen sind im Bearbeitungsmodus nicht zulässig.

Lösung

Probieren Sie die oben genannten Aktionen nicht aus, während Das Add-In geladen wird. Add-In-Methoden, die während des Ladevorgangs aufgerufen werden, umfassen die Initialize-Methode und, wenn Ihr Automation-Add-In die IDTExtensibility2-Schnittstelle implementiert, auch die Methoden OnConnection und OnStartupComplete.

Status

Microsoft hat bestätigt, dass dies ein Fehler in den Microsoft-Produkten ist, die am Anfang dieses Artikels aufgeführt sind.

Weitere Informationen

Schritte zum Reproduzieren des Problems

  1. Starten Sie ein neues ActiveX-DLL-Projekt in Visual Basic.

  2. Klicken Sie im Menü Projekt auf Projekt1-Eigenschaften. Ändern Sie den Projektnamen in TestAddIn, und klicken Sie dann auf OK.

  3. Fügen Sie dem Codemodul für Class1 den folgenden Code hinzu:

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

  5. Starten Sie in Excel eine neue Arbeitsmappe.

  6. Führen Sie in Microsoft Office Excel 2003 oder Microsoft Excel 2002 die folgenden Schritte aus:

    1. Zeigen Sie im Menü Extras auf Add-Ins, und klicken Sie dann auf Automatisierung.

    2. Klicken Sie in der Liste auf TestAddIn.Class1, und klicken Sie dann auf OK.

    3. Klicken Sie im Dialogfeld Add-Ins auf OK.

    Führen Sie in Microsoft Office Excel 2007 die folgenden Schritte aus:

    1. Klicken Sie auf die Microsoft Office-Schaltfläche und dann aufExcel-Optionen.

    2. Klicken Sie auf die Registerkarte Add-Ins .

    3. Klicken Sie in der Liste Verwalten auf Excel-Add-Ins, und klicken Sie dann auf Los.

    4. Klicken Sie im Dialogfeld Add-Ins aufAutomatisierung.

    5. Klicken Sie in der Liste auf TestAddin.Class1, und klicken Sie dann auf OK.

    6. Klicken Sie auf OK.

  7. Geben Sie =a in eine beliebige Zelle ein. Ein Meldungsfeld mit dem Text "Class_Initialize" wird angezeigt.

  8. Klicken Sie auf OK, um das Meldungsfeld zu schließen. Nach einigen Sekunden schlägt Excel fehl.

Informationsquellen

Weitere Informationen finden Sie in folgendem Artikel der Microsoft Knowledge Base:

291392 INFO: Excel-COM-Add-Ins und Automatisierungs-Add-Ins

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.