Síntomas

Cuando Microsoft Excel carga un complemento de automatización durante el modo de edición de celdas, Excel produce un error. Este problema solo se produce con los complementos de Automatización que se han cargado a petición en Excel.

Causa

Este problema puede ocurrir cuando un complemento se carga si el complemento muestra un formulario o cuadro de diálogo, o si el complemento realiza una solicitud de automatización a Excel que intenta cambiar el estado de Excel. La lista siguiente incluye ejemplos de solicitudes de automatización que pueden provocar errores en Excel cuando se llama mientras se carga un complemento de Automation durante el modo de edición de celdas:

  • Cambie la selección actual mediante programación. Por ejemplo:

    Application.ActiveSheet.Range("A1").Select
  • Llamar a una propiedad o método de un elemento de la colección de Windows. Por ejemplo:

    Application.ActiveWindow.Zoom = 200
  • Cambie una configuración de Excel, como el modo de cálculo. Por ejemplo:

    Application.CalculationMode = xlManual

Todos estos elementos son ejemplos de intentos de código para cambiar el entorno de Excel, un libro o una hoja de cálculo; Estos tipos de acciones no están permitidos mientras está en modo de edición.

Solución

No intente las acciones mencionadas anteriormente mientras se carga el complemento. Los métodos de complemento a los que se llama durante la carga incluyen el método Initialize y, si el complemento Automation implementa la interfaz IDTExtensibility2, los métodos OnConnection y OnStartupComplete también.

Estado

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

Más información

Pasos para reproducir el problema

  1. Inicie un nuevo proyecto de DLL de ActiveX en Visual Basic.

  2. En el menú Proyecto, haga clic en Propiedades de Project1. Cambie el nombre del proyecto a TestAddIn y, a continuación, haga clic en Aceptar.

  3. Agregue el código siguiente al módulo de código para Class1:

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

  5. En Excel, inicie un nuevo libro.

  6. En Microsoft Office Excel 2003 o en Microsoft Excel 2002, siga estos pasos:

    1. En el menú Herramientas , seleccione Complementos y, a continuación, haga clic en Automatización.

    2. En la lista, haga clic en TestAddIn.Class1 y, 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 Microsoft Office y, a continuación, haga clic enOpciones de Excel.

    2. Haga clic en la pestaña Complementos .

    3. En la lista Administrar , haga clic en Complementos de Excel y, a continuación, haga clic en Ir.

    4. En el cuadro de diálogo Complementos , haga clic enAutomatización.

    5. En la lista, haga clic en TestAddin.Class1 y, a continuación, haga clic en Aceptar.

    6. Haga clic en Aceptar.

  7. Escriba =a en cualquier celda. Aparecerá un cuadro de mensaje con el texto "Class_Initialize".

  8. Haga clic en Aceptar para descartar el cuadro de mensaje. Después de unos segundos, Excel produce un error.

Referencias

Para obtener información adicional al respecto, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

291392 INFORMACIÓN: Complementos COM de Excel y complementos de automatización

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.