2012-08-15 16 views
6

Dopo aver installato tutti gli ultimi aggiornamenti di Windows, il mio codice VBA di Excel mostra un errore di automazione all'inizio del primo modulo. Contiene alcune forme e numerosi moduli di codice VBA. Tuttavia, quando si rimuovono i moduli (e il codice associato) tutto va bene.Errori di automazione di Excel/VBA dovuti a Office Service Pack 3.0 causati dai moduli

La stessa cosa è accaduta circa un anno fa dopo alcuni aggiornamenti di Windows. Quindi l'eliminazione dei file .exd ha funzionato, ma gli aggiornamenti correnti (incluso Service Pack 3) sembrano essere diversi.

Cosa sta succedendo e come posso far funzionare i moduli? Tutto il codice è invariato ed è sopravvissuto a tutti gli aggiornamenti di windows/office precedenti. Esecuzione di Windows 7 (stesso accadimento sul computer Vista) e Office 2007.

risposta

16

Ho usato molto per vedere questo con Visual Basic and Crystal Reports; a causa di una cattiva distribuzione o DLL Hell.

Quindi, suppongo che non si tratti del codice ma di alcuni controlli di terze parti (OCX, DLL) che si stanno utilizzando.

Controllare i riferimenti (in IDE VBA, fare clic su Strumenti e riferimenti) e vedere dove punta ciascuna DLL.

Vedere se una delle date sulle librerie è diversa da una macchina funzionante e si può trovare il colpevole.


Modifica

L'OP trovato il problema seguendo la procedura descritta sopra.

La correzione di questo problema particolare è quello di annullare la registrazione mscomctl.ocx:

regsvr32 /u mscomctl.ocx 

quindi registrarlo:

regsvr32 mscomctl.ocx 
+0

avanti non direttamente a confrontare, ma solo differenza fondamentale che ho trovato è "Microsoft Windows Common Controls 6.0 (SP6) MSCOMCTL.OCX che datato 6/6/12 sulla macchina aggiornata (e non funzionante) e il 4/11/11 su una "vecchia" Non usando alcun controllo di terze parti e tutto ha funzionato bene fino a quando non sono stati eseguiti gli aggiornamenti di Windows. – Rob

+0

@Rob Penso che confrontare le date con i file sarebbe abbastanza semplice, ma che ev. Il [Mscomctl.ocx] (http://support.microsoft.com/kb/2597986) era in un aggiornamento di sicurezza di ieri (14 agosto) e tu dici di aver appena installato gli ultimi aggiornamenti su il computer. Potrebbe essere il problema, potrebbe non esserlo, ma dal momento che questo è qualcosa che è cambiato nelle ultime 24 ore, tu sospiri t voglio provare a disinstallare l'aggiornamento specifico o annullare la registrazione del nuovo ocx e quindi registrare il "controllo di lavoro". Ci vorranno forse cinque minuti per vedere se questo è il tuo problema. – ray

+0

Il confronto delle date è stato complicato dal momento che le macchine non sono identiche e alcuni timbri sembrano dipendere da quando sono stati eseguiti esattamente gli aggiornamenti in precedenza. Come dici tu, l'annullamento della registrazione e la registrazione funziona perfettamente. – Rob

0

Abbiamo lo stesso problema. Nel nostro componente aggiuntivo, siamo stati in grado di tracciare il problema con una dichiarazione di una variabile come Excel.Application. Il riferimento a questo oggetto si trova nel file Excel.exe, quindi non è chiaro quali file siano stati incasinati.

Le macchine che hanno questo problema sono stati tutti aggiornati questa mattina (15 ago 2012) con i seguenti aggiornamenti (scusate, non la pubblicazione di link, come un nuovo utente, io sono limitato a solo due per ogni post):

Security Update for Microsoft Office 2007 suites (KB2596615)

Security Update for Microsoft Office 2007 suites (KB2596754)

Aggiornamento della protezione per Microsoft Office 2007 (KB2596856)

Aggiornamento della protezione per Microsoft Office 2007 (KB2687441)

Aggiornamento per Microsoft Office Outlook 2007 filtro della posta indesiderata (KB2687400)

di Windows Strumento di rimozione malware x64 - agosto 2012 (KB890830)

Allo stato attuale, non abbiamo trovato alcuna informazione sul sito MSDN potrebbe chiarire questo. Stiamo ancora cercando di isolarlo ulteriormente.

0

Ho avuto lo stesso problema. Ho ricevuto un errore non specificato durante l'apertura di Excel con il caricamento del componente aggiuntivo. In passato, l'eliminazione dei file * .exd in C: \ Documents and Settings \% USERNAME% \ Application Data \ Microsoft \ Forms \ ha funzionato, ma non questa volta.
Quando ho tentato di aprire i moduli nel mio componente aggiuntivo, ho ricevuto un errore diverso e non ho potuto aprire i moduli. Ho finito per tornare alla scorsa notte prima dell'aggiornamento e tutto funziona di nuovo.

0

Lo stesso problema qui oggi dopo aver eseguito l'aggiornamento per Office 2007 Excel. Stranamente, un sistema non ha avuto problemi nonostante l'aggiornamento - il nuovo sistema. Quindi, dopo qualche ispezione, ho notato che questo sistema privo di problemi aveva una versione diversa di MSCOMCTL.OCX in windows \ sysWOW64 e altri. Ecco i dettagli di questo activeX Dimensione: 1.070.152 byte creato: 6/3/2012 modificato: 6/6/2012 versione prodotto: 6.01.9834 Così ho copiato questo problema e ha fatto il trucco.

Inoltre, è possibile controllare se queste estensioni dell'applicazione sono presenti in windows \ sysWOW64 o windows \ system32 per sistema a 32 bit FM20.DLL (Data modifica: 7/7/2011, versione 12.0.6604.1000, 1.13 MB) FM20ENU.DLL (Data modifica: 24/10/2008, versione 12.0.6413.1000, 32.3KB) Non è sicuro dove è possibile scaricarli. Li ho cannibalizzati da altri sistemi.

2

Stesso problema con VBA per AutoCAD. Nel mio caso, la registrazione del nuovo mscomctl.ocx con regsvr32 è stata sufficiente per risolvere il problema.

+0

Infatti, tutto ciò che serve è "regsvr32/u mscomctl.ocx" e "regsvr32 mscomctl.ocx" eseguito come amministratore. – Rob

0

Aveva lo stesso problema su tutti i nostri server terminal dopo uno degli aggiornamenti la scorsa notte. La registrazione di mscomctl.ocx ha risolto il problema per tutti gli utenti.

5

Lo stesso problema qui, problema risolto completamente dopo la registrazione di mscomctl.ocx!

per Windows 7 o 2008 - ricordarsi di eseguire cmd.exe "come amministratore", e poi:

per i sistemi Windows a 32 bit: regsvr32 c: \ windows \ system32 \ mscomctl.ocx

per i sistemi a 64 bit di Windows: regsvr32 c: \ windows \ syswow64 \ mscomctl.ocx

0

ONU e la registrazione del mscomctl.ocx ha fatto il trucco per me:

  1. Aprire un prompt dei comandi di livello amministrativo. Fare clic su START e digitare RUN nella riga di comando di esecuzione. Su Windows Vista e Windows 7 sarà vedere CMD.EXE visualizzato nell'elenco di ricerca rapida. Fare clic con il tasto destro del mouse su CMD.EXE e fare clic con il pulsante sinistro del mouse Esegui come amministratore. Si apre un prompt dei comandi nero.

  2. Se su una macchina a 64 bit, digitare quanto segue: regsvr32.exe/u C: \ Windows \ SysWOW64 \ MSCOMCTL.OCX

premere invio quindi digitare regsvr32.exe C: \ Windows \ SysWOW64 \ MSCOMCTL.OCX Se su un computer a 32 bit, digitare quanto segue: regsvr32.exe/u C: \ Windows \ System32 \ MSCOMCTL.OCX premere INVIO, quindi digitare
regsvr32.exe C: \ Windows \ System32 \ MSCOMCTL.OCX Il tuo programma Office dovrebbe funzionare di nuovo dopo aver fatto questo.

Si prega di consultare anche: 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

figlio di una pistola ... ho ri-registrato: \ Windows \ System32 \ MSCOMCTL.OCX e tutto funziona di nuovo. Grazie mille a tutti quelli che lo hanno sottolineato.

2

Non è stato possibile risolvere il problema registrando nuovamente mscomctl.ocx. Ma l'abbiamo risolto rimuovendo un "modulo oggetto barra di avanzamento" che chiama mscomctl.ocx ... Lo abbiamo sostituito con application.statusbar.

Problemi correlati