2012-08-15 18 views
6

Después de instalar todas las últimas actualizaciones de Windows, mi código de Excel VBA muestra un error de automatización desde el inicio del primer módulo. Contiene algunos formularios y numerosos módulos de código VBA. Sin embargo, al eliminar los formularios (y el código asociado) todo está bien.Excel/VBA Errores de automatización debido a Office Service Pack 3.0 causados ​​por los formularios

Lo mismo sucedió hace aproximadamente un año después de algunas otras actualizaciones de Windows. En ese momento, borrar los archivos .exd hizo el truco, pero las actualizaciones actuales (incluido el Service Pack 3) parecen ser diferentes.

¿Qué está pasando y cómo puedo hacer que los formularios funcionen? Todo el código no ha cambiado y ha sobrevivido a todas las actualizaciones anteriores de Windows/Office. Ejecutando Windows 7 (lo mismo ocurre en la máquina Vista) y Office 2007.

Respuesta

16

Solía ​​ver esto mucho con Visual Basic and Crystal Reports; ya sea debido a una mala implementación o DLL Hell.

Así que, supongo que no es el código sino quizás algunos controles de terceros (OCX, DLL) que está utilizando.

Verifique sus referencias (En IDE de VBA, haga clic en Herramientas y referencias) y para ver a dónde apunta cada DLL.

Vea si alguna de las fechas en las bibliotecas es diferente a una máquina en funcionamiento y puede encontrar al culpable.


Editar

La OP encontró el problema siguiendo los pasos anteriores.

La solución para este problema en particular es para anular el registro mscomctl.ocx:

regsvr32 /u mscomctl.ocx 

continuación, se registra que:

regsvr32 mscomctl.ocx 
+0

hacia adelante no directamente a comparar, pero sólo diferencia clave que he encontrado es "Microsoft Windows Common Controls 6.0 (SP6) MSCOMCTL.OCX que tiene fecha del 6/6/12 en la máquina actualizada (y no en funcionamiento) y 11/11/11 en una "anterior". No usar controles de terceros y todo funcionó bien hasta que se ejecutaron las actualizaciones de Windows. – Rob

+0

@Rob Creo que comparar las fechas con los archivos sería bastante sencillo, pero qué evs. El [Mscomctl.ocx] (http://support.microsoft.com/kb/2597986) estaba en una actualización de seguridad de ayer (14 de agosto) y dices que acabas de instalar las últimas actualizaciones en la computadora. Puede ser el problema, puede que no, pero dado que esto es algo que cambió en las últimas 24 horas, usted Quiero intentar desinstalar la actualización específica o anular el registro de la nueva ocx y luego registrar el "control de trabajo". Tardaría tal vez cinco minutos para ver si ese es su problema. – ray

+0

La comparación de fechas fue incómoda ya que las máquinas no idénticas y algunos sellos de datos parecen depender de cuándo se ejecutaron exactamente las actualizaciones. Como dices, anular el registro y registrar funciona perfectamente. – Rob

0

tenemos el mismo problema. En nuestro Add-In, pudimos rastrear el problema hasta una declaración de una variable como Excel.Application. La referencia a este objeto está en el archivo Excel.exe, por lo que no está muy claro qué archivos se dañaron.

Las máquinas que tienen este problema fueron todos actualizados temprano esta mañana (15 ago 2012) con los siguientes cambios (lo siento por no publicar enlaces, como un nuevo usuario, estoy limitado a sólo dos por mensaje):

Security Update for Microsoft Office 2007 suites (KB2596615)

Security Update for Microsoft Office 2007 suites (KB2596754)

actualización de seguridad para Microsoft Office 2007 (KB2596856)

actualización de seguridad para Microsoft Office 2007 (KB2687441)

Actualización para Microsoft Office Outlook 2007 Junk Email Filter (KB2687400)

herramienta de eliminación de software malintencionado de Windows x64 - agosto de 2012 (KB890830)

En la actualidad, no hemos encontrado ninguna información en el sitio de MSDN podría aclarar esto. Todavía estamos tratando de aislar esto aún más.

0

Tuve el mismo problema. Obtuve un error no especificado al abrir Excel con la carga de mi complemento. En el pasado, eliminar los archivos * .exd en C: \ Documents and Settings \% USERNAME% \ Application Data \ Microsoft \ Forms \ hizo el truco, pero esta vez no.
Cuando intenté abrir los formularios en mi complemento, recibí un error diferente y no pude abrir los formularios. Terminé regresando a la última noche antes de la actualización y todo funciona nuevamente.

0

El mismo problema hoy aquí después de realizar la actualización de Office 2007 Excel. Curiosamente, un sistema no tenía problemas a pesar de la actualización, el sistema más nuevo. Así que después de algunas inspecciones, noté que este sistema sin problemas tenía una versión diferente de MSCOMCTL.OCX en windows \ sysWOW64 y otras. Aquí están los detalles de este activeX Tamaño: 1,070,152 bytes created: 6/3/2012 modified: 6/6/2012 versión del producto: 6.01.9834 Así que copié esto al problema y funcionó.

Además, es posible que desee verificar si estas extensiones de aplicación están presentes en Windows \ sysWOW64 o Windows \ System32 para el sistema de 32 bits FM20.DLL (Fecha de modificación: 7/7/2011, versión 12.0.6604.1000, 1.13 MB) FM20ENU.DLL (fecha de modificación: 10/24/2008, versión 12.0.6413.1000, 32.3 KB) No estoy seguro de dónde puede descargarlos. Los canibalicé de otros sistemas.

2

Mismo problema con VBA para AutoCAD. En mi caso, registrar el nuevo mscomctl.ocx con regsvr32 fue suficiente para solucionar el problema.

+0

De hecho, todo lo que necesita es "regsvr32/u mscomctl.ocx" y "regsvr32 mscomctl.ocx" ejecutado como admin. – Rob

0

Tuvimos el mismo problema en todos nuestros servidores de terminales después de una de las actualizaciones de anoche. El registro de mscomctl.ocx solucionó el problema para todos los usuarios.

5

¡El mismo problema aquí, problema completamente resuelto después de registrar mscomctl.ocx!

para Windows 7 o 2008 - recordar ejecutar cmd.exe "como administrador", y luego:

para sistemas Windows de 32 bits: regsvr32 c: \ windows \ system32 \ mscomctl.ocx

de los sistemas de 64 bits de windows: regsvr32 c: \ windows \ SysWOW64 \ mscomctl.ocx

0

desempleo y el registro de la Mscomctl.ocx hizo el truco para mí:

  1. Abra un símbolo del sistema de nivel administrativo. Haga clic en INICIAR y escriba EJECUTAR en la línea de comandos de ejecución. En Windows Vista y Windows 7, verá , consulte CMD.EXE en la lista de búsqueda rápida. Haga clic con el botón derecho en CMD.EXE y haga clic con el botón izquierdo en Ejecutar como administrador. Se abre un mensaje de comando negro.

  2. Si en una máquina de 64 bits, escriba lo siguiente: regsvr32.exe/u C: \ Windows \ SysWOW64 \ MSCOMCTL.OCX

golpe entra a continuación, escriba regsvr32.exe C: \ Windows \ SysWOW64 \ MSCOMCTL.OCX Si está en una máquina de 32 bits, escriba lo siguiente: regsvr32.exe/u C: \ Windows \ System32 \ MSCOMCTL.OCX presione ENTER y luego escriba
regsvr32.exe C: \ Windows \ System32 \ MSCOMCTL.OCX Su programa de Office debería funcionar de nuevo después de hacer esto.

Por favor, véase también: C http://blogs.technet.com/b/the_microsoft_excel_support_team_blog/archive/2012/08/15/quot-unspecified-automation-error-quot-after-applying-ms12-060.aspx

0

hijo de un arma de fuego ... Me re-registrado: \ Windows \ System32 \ MSCOMCTL.OCX y todo funciona de nuevo. Muchas gracias a todos los que lo señalaron.

2

No pudimos resolver el problema volviendo a registrar mscomctl.ocx. Pero lo resolvimos eliminando un "objeto de barra de progreso" que llama a mscomctl.ocx ... Lo reemplazamos por application.statusbar.

Cuestiones relacionadas