Excel produce un error cuando el complemento de automatización carga

Síntomas

Cuando Microsoft Excel carga un complemento de automatización celular durante el modo de edición, se produce un error de Excel. Este problema sólo ocurre con complementos de automatización que se han cargado de demanda en Excel.

Causa

Este problema puede producirse cuando un complemento se carga si el complemento muestra un cuadro de diálogo o formulario, o si el complemento realiza una petición de automatización para Excel que intenta cambiar el estado de Excel. La siguiente lista incluye ejemplos de solicitudes de automatización que pueden hacer que Excel un error cuando se llama durante la carga de un complemento de automatización durante el modo de edición de celda:
  • Cambiar mediante programación la selección actual. Por ejemplo:
    Application.ActiveSheet.Range("A1").Select
  • Llamar a una propiedad o método de un elemento de la colección Windows. Por ejemplo:
    Application.ActiveWindow.Zoom = 200
  • Cambiar un ajuste como el modo de cálculo de Excel. Por ejemplo:
    Application.CalculationMode = xlManual
Todos estos elementos son ejemplos de código intenta cambiar el entorno de Excel, un libro o una hoja de cálculo; no se permiten estos tipos de acciones en el modo de edición.

Solución

No trate de las acciones mencionadas anteriormente mientras las cargas de complemento. Complemento de métodos que se llaman durante la carga incluyen el método Initialize y, si el complemento de automatización que implementa la interfaz IDTExtensibility2 , OnConnection y OnStartupComplete métodos también.

Estado

Microsoft ha confirmado que se trata de un error en los productos de Microsoft que se enumeran al principio de este artículo.

Más información

Pasos para reproducir el problema

  1. Inicie un nuevo proyecto DLL ActiveX en Visual Basic.
  2. En el menú proyecto , haga clic en Propiedades de Project1. Cambie el Nombre del proyecto a TestAddIny, a continuación, haga clic en Aceptar.
  3. Agregue el código siguiente al módulo de código de Class1:
    Private Sub Class_Initialize()    MsgBox "Class_Initialize"
    End Sub

  4. Generar TestAddIn.dll.
  5. En Excel, inicie un libro nuevo.
  6. En Microsoft Office Excel 2003 o en Microsoft Excel 2002, siga estos pasos:
    1. En el menú Herramientas , elija Complementosy, a continuación, haga clic en automatización.
    2. En la lista, haga clic en TestAddIn.Class1y, a continuación, haga clic en Aceptar.
    3. En el cuadro de diálogo Complementos , haga clic en Aceptar.
    En Microsoft Office Excel 2007, siga estos pasos:
    1. Haga clic en el Botón de Microsoft Officey, a continuación, haga clic en
      Opciones de Excel.
    2. Haga clic en la ficha Complementos .
    3. En la lista Administrar , haga clic en complementos de Excely, a continuación, haga clic en Ir.
    4. En el cuadro de diálogo Complementos , haga clic en
      Automatización.
    5. En la lista, haga clic en TestAddin.Class1y, a continuación, haga clic en Aceptar.
    6. Haga clic en Aceptar.
  7. Tipo de = un en cualquier celda. Aparecerá un cuadro de mensaje con el texto "Class_Initialize".
  8. Haga clic en Aceptar para cerrar el cuadro de mensaje. Tras unos segundos, se produce un error de Excel.

Referencias

Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
291392 INFO: complementos complementos COM y automatización de Excel

Propiedades

Id. de artículo: 284876 - Última revisión: 24 ene. 2017 - Revisión: 1

Comentarios