it-swarm.com.de

Microsoft Excel ActiveX-Steuerelemente deaktiviert?

Ich habe einige Excel-Arbeitsblätter, die ActiveX-Kontrollkästchen verwenden, um bestimmte Aktivitäten zu steuern. Sie haben kürzlich gearbeitet, aber heute haben sie Fehler gemacht. Ich wurde von einem Kollegen darauf aufmerksam gemacht, aber es funktionierte immer noch auf meinem Computer. Ich habe seine Version von Excel mit meiner verglichen und seine war neuer. Ich bemerkte, dass es neue Windows-Updates gab, also nahm ich das Update vor. Nachdem ich ausstehende Updates angewendet habe, funktioniert es jetzt nicht mehr auf meinem Computer. Ich kann die ActiveX-Kontrollkästchen nicht mehr aktivieren, und als Teil des Debuggingversuchs scheint es, als könnte ich keinem Arbeitsblatt, nicht einmal einem neuen Arbeitsblatt, sogar ein ActiveX-Steuerelement hinzufügen. Ich erhalte ein Fehlerdialogfeld, das besagt: "Objekt kann nicht eingefügt werden." (Ich kann immer noch Formularsteuerelemente hinzufügen, nicht jedoch ActiveX.) Wer hat nach einer letzten Aktualisierung noch etwas davon? Irgendwelche Vorschläge?

Vielen Dank,

Mike

108
Mike Pedersen

Aus anderen Foren habe ich erfahren, dass es an dem MS Update liegt und dass es eine gute Lösung ist, einfach die Datei MSForms.exd aus einem beliebigen Temp-Unterordner im Profil des Benutzers zu löschen. Zum Beispiel:

C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd

C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd

C:\Users\[user.name]\AppData\Local\Temp\Word8.0\MSForms.exd

Natürlich muss die Anwendung (Excel, Word ...) geschlossen sein, um diese Datei löschen zu können.

156
John W.

Hier ist die beste Antwort, die ich im Microsoft Excel Support Team Blog gefunden habe

Für einige Benutzer funktionieren Formularsteuerelemente (FM20.dll) nicht mehr als voraussichtlich nach der Installation von Updates für Dezember 2014. Probleme sind zu Zeiten wie dem Öffnen von Dateien mit vorhandenem VBA erlebt Versuchen Sie, ein Formular-Steuerelement in ein .__ einzufügen. neues Arbeitsblatt oder führen Sie Software von Drittanbietern aus, die diese verwenden. Komponenten. 

Sie erhalten möglicherweise Fehler wie: 

"Objekt kann nicht eingefügt werden" "Objektbibliothek ungültig oder enthält Verweise auf Objektdefinitionen, die nicht gefunden werden konnten."

Darüber hinaus können Sie Eigenschaften eines .__ möglicherweise nicht verwenden oder ändern. ActiveX-Steuerelement in einem Arbeitsblatt oder beim Versuch mit .__ eine Fehlermeldung erhalten. Verweisen Sie auf ein ActiveX-Steuerelement als Mitglied eines Arbeitsblatts über den Code . Schritte, die nach dem Update zu befolgen sind:

Um dieses Problem zu beheben, müssen Sie die zwischengespeicherten Versionen von .__ löschen. Steuerelementbibliotheken (Extender-Dateien) auf dem Clientcomputer. Machen Dazu müssen Sie Ihre Festplatte nach Dateien mit der Dateiendung ".exd" .__ durchsuchen. Dateinamenerweiterung und löschen Sie alle gefundenen .exd-Dateien. Diese .exd-Dateien werden automatisch neu erstellt, wenn Sie das neue .__ verwenden. steuert die nächste Verwendung von VBA. Diese Extender-Dateien werden .__ sein. unter dem Benutzerprofil und kann sich auch an anderen Orten befinden, z. B. folgende: 

% appdata%\Microsoft\forms

% temp%\Excel8.0

% temp%\VBE

Scripting-Lösung:

Da dieses Problem mehrere Computer betreffen kann, ist es auch Sie können eine Skriptlösung erstellen, um die EXD-Dateien und .__ zu löschen. Führen Sie das Skript als Teil des Anmeldeprozesses mithilfe einer Richtlinie aus. Das Skript Sie müssten die folgenden Zeilen enthalten und müssten .__ sein. für jeden USER ausführen, da die .exd-Dateien USER-spezifisch sind.

del% temp%\vbe\*. exd

del% temp%\Excel8.0\*. exd

del% appdata%\Microsoft\forms\*. exd

del% appdata%\Microsoft\local\*. exd

del% appdata%\Roaming\Microsoft\forms\*. exd

del% temp%\Word8.0\*. exd

del% temp%\PPT11.0\*. exd

Zusätzlicher Schritt:

Wenn die oben genannten Schritte Ihr Problem nicht beheben, kann ein weiterer Schritt .__ sein. getestet (siehe Warnung unten):

  1. Öffnen Sie auf einem vollständig aktualisierten Computer und nach dem Entfernen der EXD-Dateien die Datei mit Bearbeitungsberechtigungen in Excel.

    Öffnen Sie Visual Basic für Applikationen> ändern Sie das Projekt, indem Sie einem beliebigen Codemodul> Debug> Compile .__ einen Kommentar hinzufügen oder bearbeiten. VBAProject.

    Speichern Sie die Datei und öffnen Sie sie erneut. Testen Sie die Auflösung. Wenn das Problem behoben ist, stellen Sie dieses aktualisierte Projekt weiteren Benutzern zur Verfügung.

    Warnung: Wenn Ihr Problem durch diesen Schritt behoben wird, beachten Sie, dass diese Benutzer nach der Bereitstellung dieses aktualisierten Projekts für die anderen Benutzer. Außerdem müssen die Aktualisierungen auf ihren Systemen und den .exd-Dateien angewendet werden auch entfernt.

Wenn sich das Problem dadurch nicht beheben lässt, liegt möglicherweise ein anderes Problem und Weitere Fehlerbehebung kann erforderlich sein. 

Microsoft arbeitet derzeit an diesem Problem. Schauen Sie sich den Blog für .__ an. Aktualisierung.

Quelle

35
Jan Moritz

Es war KB2553154 . Microsoft muss ein Update veröffentlichen. Als Entwickler von Excel-Anwendungen können wir nicht auf alle Computer unserer Kunden gehen und Dateien von ihnen löschen. Wir werden für etwas verantwortlich gemacht, das Microsoft verursacht hat.

14
Ron R

Ich bin ein Excel-Entwickler und habe definitiv die Schmerzen gespürt, als dies geschah. Glücklicherweise konnte ich eine Problemumgehung finden, indem ich die MSForms.exd-Dateien in VBA umbenannte, selbst wenn Excel ausgeführt wird. Dies kann auch das Problem beheben. Excel-Entwickler, die ihre Kalkulationstabellen verteilen müssen, können ihren Kalkulationstabellen den folgenden VBA-Code hinzufügen, um sie gegen das MS-Update zu schützen.

Platzieren Sie diesen Code in einem beliebigen Modul.

Public Sub RenameMSFormsFiles() 
  Const tempFileName As String = "MSForms - Copy.exd"  
  Const msFormsFileName As String = "MSForms.exd"  
  On Error Resume Next 

  'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\MSForms.exd file  
  RenameFile Environ("TEMP") & "\Excel8.0\" & msFormsFileName, Environ("TEMP") & "\Excel8.0\" & tempFileName 
  'Try to rename the C:\Users\[user.name]\AppData\Local\Temp\VBE\MSForms.exd file  
  RenameFile Environ("TEMP") & "\VBE\" & msFormsFileName, Environ("TEMP") & "\VBE\" & tempFileName 
End Sub  

Private Sub RenameFile(fromFilePath As String, toFilePath As String) 
  If CheckFileExist(fromFilePath) Then 
      DeleteFile toFilePath  
      Name fromFilePath As toFilePath  
  End If  
End Sub

Private Function CheckFileExist(path As String) As Boolean 
  CheckFileExist = (Dir(path) <> "")  
End Function  

Private Sub DeleteFile(path As String) 
  If CheckFileExist(path) Then 
      SetAttr path, vbNormal  
      Kill path  
  End If  
End Sub    

Die RenameMSFormsFiles-Unterroutine versucht, die MSForms.exd-Dateien in den Ordnern C:\Users\[user.name]\AppData\Local\Temp\Excel8.0\ und C:\Users\[user.name]\AppData\Local\Temp\VBE\ in MSForms - Copy.exd umzubenennen.

Rufen Sie dann die RenameMSFormsFiles-Subroutine ganz am Anfang des Workbook_Open-Ereignisses auf.

Private Sub Workbook_Open() 
  RenameMSFormsFiles  
End Sub

Die Kalkulationstabelle versucht, die MSForms.exd-Dateien beim Öffnen umzubenennen. Offensichtlich ist dies keine perfekte Lösung:

  1. Wenn der VBA-Code ausgeführt wird, tritt der betroffene Benutzer beim ersten Öffnen der Kalkulationstabelle weiterhin mit den Fehlern des ActiveX-Steuerelements auf. Erst nachdem der VBA-Code einmal ausgeführt und Excel neu gestartet wurde, ist das Problem behoben. Normalerweise, wenn ein Benutzer auf eine beschädigte Kalkulationstabelle stößt, besteht die Reaktion darauf, Excel zu schließen und zu versuchen, die Kalkulationstabelle erneut zu öffnen. :)
  2. Die MSForms.exd-Dateien werden bei jedem Öffnen der Kalkulationstabelle umbenannt, auch wenn bei den MSForms.exd-Dateien keine Probleme auftreten. Die Tabelle funktioniert jedoch einwandfrei.

Zumindest vorerst können Excel-Entwickler ihre Arbeit mit dieser Problemumgehung weiter verteilen, bis Microsoft ein Update veröffentlicht.

Ich habe diese Lösung hier gepostet.

13
Yi Hu

Mit Windows 8.1 konnte ich keine .exd-Dateien mit der Windows-Suche finden. Auf der anderen Seite hat der Befehl cmddir *.exd /Sdie einzige Datei auf meinem System gefunden.

5
Marc Thibault

Ratschläge in KB und oben haben bei mir nicht funktioniert. Ich habe festgestellt, dass der ursprüngliche Fehler zurückgegeben wird, wenn ein Excel 2007-Benutzer (mit oder ohne Sicherheitsupdate; nicht sicher ist, welche Umstände dies bewirken) die Datei speichert.

Ich habe festgestellt, dass der schnellste Weg, die Datei wieder zu reparieren, darin besteht, den gesamten VBA-Code zu löschen. Sparen. Ersetzen Sie dann den VBA-Code (Kopieren/Einfügen). Sparen. Bevor ich dies versuche, lösche ich zuerst die .EXD-Dateien, da ich sonst beim Öffnen einen Fehler bekomme.

In meinem Fall kann ich nicht alle Benutzer meiner Excel-Datei an verschiedenen Speicherorten aktualisieren oder aktualisieren. Da das Problem wieder auftritt, nachdem einige Benutzer die Excel-Datei gespeichert haben, muss ich das ActiveX-Steuerelement durch etwas anderes ersetzen.

3
pghcpa

Die beste Informationsquelle und Updates zu diesem Problem finden Sie in den TechNet-Blogs »Der Microsoft Excel Support Team-Blog (wie erwähnt):

Form Controls funktionieren nach Updates vom Dezember 2014 nicht mehr (Update vom 10. März 2015)

Im März 2015 wurde ein Hotfix zusätzlich zu den automatisierten Fix-It- und manuellen Anweisungen veröffentlicht und ist auch unter Windows Update verfügbar.

Das neueste Update und Update von Microsoft: 3025036 Fehler "Objekt kann nicht eingefügt werden" in einer benutzerdefinierten ActiveX-Office-Lösung, nachdem Sie das Sicherheitsupdate MS14-082 installiert haben

STATUS: Update 10. März 2015:

Hotfixes für dieses Problem wurden in den März 2015-Updates für Office 2007, 2010 und 2013 veröffentlicht. 

Allgemeine Informationen zum Problem:

Für einige Benutzer funktionieren die Formularsteuerelemente (FM20.dll) nach der Installation der Microsoft Office-Sicherheitsupdates für MS14-082 für Dezember 2014 nicht mehr wie erwartet. Bei Problemen treten beispielsweise Probleme auf, wenn sie Dateien mit vorhandenen VBA-Projekten unter Verwendung von Formularsteuerelementen öffnen Ein Formularsteuerelement in ein neues Arbeitsblatt einfügen oder Software von Drittanbietern ausführen, die diese Komponenten verwendet. 

https://technet.Microsoft.com/de-de/library/security/ms14-082.aspx

Sie erhalten möglicherweise Fehler wie: "Objekt kann nicht eingefügt werden"; "Objektbibliothek ungültig oder enthält Verweise auf Objektdefinitionen, die nicht gefunden werden konnten"; "Das zum Erstellen dieses Objekts verwendete Programm ist Forms. Dieses Programm ist entweder nicht auf Ihrem Computer installiert oder reagiert nicht. Um dieses Objekt zu bearbeiten, installieren Sie Forms oder stellen Sie sicher, dass alle Dialogfelder in Forms geschlossen sind." [...] Darüber hinaus können Sie möglicherweise nicht die Eigenschaften eines ActiveX-Steuerelements in einem Arbeitsblatt verwenden oder ändern oder erhalten eine Fehlermeldung, wenn Sie versuchen, über Code auf ein ActiveX-Steuerelement als Mitglied eines Arbeitsblatts zu verweisen.

Handbuch und zusätzliche Lösungen:

Scripting-Lösung:

Da dieses Problem mehrere Computer betreffen kann, ist es auch möglich, eine Skriptlösung zu erstellen, um die EXD-Dateien zu löschen und das Skript als Teil des Anmeldeprozesses mithilfe einer Richtlinie auszuführen. Das benötigte Skript sollte die folgenden Zeilen enthalten und müsste für jeden USER ausgeführt werden, da die .exd-Dateien USER-spezifisch sind.

del %temp%\vbe\*.exd
del %temp%\Excel8.0\*.exd
del %appdata%\Microsoft\forms\*.exd
del %appdata%\Microsoft\local\*.exd
del %temp%\Word8.0\*.exd
del %temp%\PPT11.0\*.exd

Zusätzlicher Schritt:

Wenn die oben genannten Schritte Ihr Problem nicht beheben, können Sie einen weiteren Schritt testen (siehe Warnung unten):

  1. Öffnen Sie auf einem vollständig aktualisierten Computer und nach dem Entfernen der EXD-Dateien die Datei mit Bearbeitungsberechtigungen in Excel.

  2. Öffnen Sie Visual Basic für Applikationen> ändern Sie das Projekt, indem Sie einem beliebigen Codemodul> Debug> Compil VBAProject einen Kommentar hinzufügen oder bearbeiten.

  3. Speichern Sie die Datei und öffnen Sie sie erneut. Testen Sie die Auflösung.

Wenn das Problem behoben ist, stellen Sie dieses aktualisierte Projekt weiteren Benutzern zur Verfügung.

Warnung: Wenn Ihr Problem durch diesen Schritt behoben wird, müssen Sie nach dem Bereitstellen dieses aktualisierten Projekts für die anderen Benutzer auch die Updates auf ihren Systemen und die .exd-Dateien entfernen lassen. 

2
dePatinkin

Vereinfachte Anweisungen für Endbenutzer. Fühlen Sie sich frei, die folgenden zu kopieren/einfügen.

So beheben Sie das Problem, wenn es auftritt:

  1. Schließen Sie alle Office-Programme und -Dateien.
  2. Öffnen Sie den Windows Explorer, geben Sie% TEMP% in die Adressleiste ein und drücken Sie die Eingabetaste. Dadurch gelangen Sie in den temporären Ordner des Systems.
  3. Suchen und löschen Sie die folgenden Ordner: Excel8.0, VBE, Word8.0
  4. Versuchen Sie nun, Ihre Datei erneut zu verwenden, es sollte keine Probleme geben.

Sie müssen möglicherweise warten, bis das Problem auftritt, damit dieser Fix funktioniert. Eine vorzeitige Anwendung (bevor Windows Update auf Ihrem System installiert ist) hilft nicht.

2
perry

Ich fand diese Antwort schließlich auf der offiziellen Microsoft KB:

http://support.Microsoft.com/kb/3025036/EN-US

Hier gibt es keine neuen Informationen als in den vorherigen Antworten, aber zumindest erkennt sie an, dass Microsoft sich des Problems bewusst ist.

1
Mike Pedersen

Ich möchte eine Antwort geben, die für mich die einzige Sache war (ich erkenne, dass ich möglicherweise die einzige bin). Ich hatte in einem Makro, das ich mit der Multifunktionsleiste anrief. Es hatte den folgenden Code:

colStore = new Collection

Mir war nicht bewusst, dass es einen Fehler gibt, also war ich verwirrt und versuchte alles hier. Der Knopf hat einfach aufgehört zu funktionieren und ich konnte ihn nicht zum Laufen bringen. Wenn ich den Fehler bemerkte und ihn korrigierte:

Set colStore = new Collection

Es fing wieder an zu arbeiten. Absolut seltsam, wenn Sie mich fragen, aber vielleicht hilft es jemandem da draußen, der so verzweifelt war wie ich.

0
Spurious

Ich weiß, dass dafür bereits viele Antworten gepostet wurden, aber keine der Antworten hat unabhängig für meine Website gearbeitet. Also hier ist was für mich gearbeitet hat:

Schritt 1: Deinstallieren Sie die folgenden Updates - KB2920789, KB2920790, KB2920792, KB2920793, KB2984942, KB2596927

Schritt 2: Blenden Sie diese Updates aus, damit sie bei nachfolgenden Neustarts nicht installiert werden

Schritt 3: Löschen Sie den Ordner Excel8.0 aus C:\Users\<>\AppData\Local\Temp

Schritt 4: Workstatiion neu starten (ich würde auch sicherstellen, dass die oben genannten KBs nicht versehentlich angewendet wurden)

0
chaltahai