Symptomy

Gdy program Microsoft Excel ładuje dodatek Automatyzacja w trybie edycji komórki, program Excel kończy się niepowodzeniem. Ten problem występuje tylko w przypadku dodatków automatyzacji, które zostały załadowane do programu Excel.

Przyczyna

Ten problem może wystąpić, gdy dodatek zostanie załadowany, jeśli dodatek wyświetli formularz lub okno dialogowe albo jeśli dodatek wprowadzi żądanie automatyzacji do programu Excel, które próbuje zmienić stan programu Excel. Poniższa lista zawiera przykłady żądań automatyzacji, które mogą powodować niepowodzenie programu Excel, gdy jest wywoływany podczas ładowania dodatku Automatyzacja w trybie edycji komórki:

  • Programowo zmień bieżące zaznaczenie. Na przyk³ad:

    Application.ActiveSheet.Range("A1").Select
  • Wywołaj właściwość lub metodę elementu w kolekcji systemu Windows. Na przyk³ad:

    Application.ActiveWindow.Zoom = 200
  • Zmienianie ustawień programu Excel, takich jak tryb obliczania. Na przyk³ad:

    Application.CalculationMode = xlManual

Wszystkie te elementy to przykłady prób kodów w celu zmiany środowiska programu Excel, skoroszytu lub arkusza. tego typu akcje nie są dozwolone w trybie edycji.

Rozwiązanie

Nie próbuj wykonywania powyższych akcji podczas ładowania dodatków. Metody dodatków wywoływane podczas ładowania obejmują metodę Initialize, a jeśli dodatek Automatyzacja implementuje interfejs IDTExtensibility2, metody OnConnection i OnStartupComplete.

Stan

Firma Microsoft potwierdziła, że jest to błąd w produktach firmy Microsoft wymienionych na początku tego artykułu.

Więcej informacji

Procedura odtwarzania problemu

  1. Rozpoczynanie nowego projektu biblioteki DLL ActiveX w języku Visual Basic.

  2. W menu Projekt kliknij polecenie Właściwości projektu1. Zmień nazwę projektu na TestAddIn, a następnie kliknij przycisk OK.

  3. Dodaj następujący kod do modułu kodu klasy 1:

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

  5. W programie Excel rozpocznij nowy skoroszyt.

  6. W programie Microsoft Office Excel 2003 lub Microsoft Excel 2002 wykonaj następujące czynności:

    1. W menu Narzędzia wskaż polecenie Dodatki, a następnie kliknij pozycję Automatyzacja.

    2. Na liście kliknij pozycję TestAddIn.Class1, a następnie kliknij przycisk OK.

    3. W oknie dialogowym Dodatki kliknij przycisk OK.

    W programie Microsoft Office Excel 2007 wykonaj następujące czynności:

    1. Kliknij przycisk pakietu Microsoft Office, a następnie kliknij pozycjęOpcje programu Excel.

    2. Kliknij kartę Dodatki .

    3. Na liście Zarządzaj kliknij pozycję Dodatki programu Excel, a następnie kliknij przycisk Przejdź.

    4. W oknie dialogowym Dodatki kliknij pozycjęAutomatyzacja.

    5. Na liście kliknij pozycję TestAddin.Class1, a następnie kliknij przycisk OK.

    6. Kliknij przycisk OK.

  7. Wpisz =a w dowolnej komórce. Zostanie wyświetlone okno komunikatu z tekstem "Class_Initialize".

  8. Kliknij przycisk OK, aby zamknąć okno wiadomości. Po kilku sekundach program Excel kończy się niepowodzeniem.

Informacje

Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

291392 INFORMACJE: Dodatki COM i dodatki automatyzacji programu Excel

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.