Excel VBA - Laufzeitautomatisierungsfehler

6060
pat2015

Ich habe folgenden VBA-Code (ziemlich häufig auf dieser Website selbst sowie an anderen Stellen im Internet gefunden, um SHA-Hash in VBA zu finden), der in Excel 2013 unter Windows 7 32 problemlos funktioniert.

Wenn derselbe Code in Excel 2003 SP3 unter Windows 7 32 ausgeführt wird, erhalten Sie jedoch einen Zeitautomatisierungsfehler in Zeile Set asc1 = CreateObject ("System.Text.UTF8Encoding").

Ich bin unklar, warum es in Excel 2003 nicht funktioniert. Angenommen, es hat etwas mit Dot Net Framework zu tun, habe ich Dot Net 4.0 erneut installiert, während 3.5.1 bereits in Windows 7 und Feature bereits aktiviert ist.

Es gibt einen sehr ähnlichen Beitrag auf dieser Seite , aber es gibt auch keine Lösung. Was sollte ich noch weiter beheben? Könnte dies etwas mit fehlenden oder beschädigten Komponenten / Bibliotheken zu tun haben?

Vielen Dank.

 Public Function SHA1(str1) Dim asc1 As Object Dim enc1 As Object Dim bytes, outstr, pos Set asc1 = CreateObject("System.Text.UTF8Encoding") Set enc1 = CreateObject("System.Security.Cryptography.SHA1CryptoServiceProvider") bytes = asc1.GetBytes_4(str1) bytes = enc1.ComputeHash_2((bytes)) outstr = ""  For pos = 1 To LenB(bytes) outstr = outstr & LCase(Right("0" & Hex(AscB(MidB(bytes, pos, 1))), 2)) Next SHA1 = outstr  Set asc1 = Nothing Set enc1 = Nothing   End Function   Private Sub CommandButton1_Click() Dim txt txt = TextBox1.Text TextBox2.Text = SHA1(txt) End Sub 

Excel VBA - Laufzeitautomatisierungsfehler

0
Werden im VBA-Editor-Fenster unter "Tools -> References" alle fehlenden Dateien auf dem Computer / Setup aufgelistet, auf dem das Problem aufgetreten ist? panhandel vor 7 Jahren 0
@panhandel - Danke für deine Eingabe. Woher weiß ich, ob etwas fehlt? Die Standardeinstellungen sind mit einem Häkchen markiert und ich habe bereits System, mscorlib und MSXML5 hinzugefügt pat2015 vor 7 Jahren 0
Bei einem fehlenden Element wird "MISSING:" wie das 6. auf diesem Bild vorangestellt: http://www.cpearson.com/images/MissingRef.png panhandel vor 7 Jahren 0
OK habe es. In diesem Fall fehlt nichts. pat2015 vor 7 Jahren 0
Ich bin auch völlig über die Tatsache, dass Sie von 2013 bis 2003 rückwärts gegangen sind, verblüfft. In diesem Fall ist es überhaupt nicht ungewöhnlich, dass eine aktualisierte DLL im Jahr 2013 referenziert wurde, die nicht abwärtskompatibel zu 2003 ist. Sie müssten durchsehen In der Referenzliste finden Sie, ob Sie den höchsten gemeinsamen Nenner dieser DLL finden können, der von beiden referenziert werden kann. panhandel vor 7 Jahren 0
Nun, ich habe Excel 2003. Ich habe es gerade geschafft, einen Freunde-Laptop aus dem Jahr 2013 zu Testzwecken auszuleihen. pat2015 vor 7 Jahren 0
Schnelle letzte Note; Wenn Sie zu einer neueren Office-Version wechseln, wird ein Verweis automatisch aktualisiert, sodass Sie den Verweis möglicherweise erst 2003 entfernen und die verfügbare Version erneut hinzufügen können, damit er wieder funktioniert. panhandel vor 7 Jahren 0
http://p2p.wrox.com/vbscript/29099-unicode-utf-8-system-text-utf8encoding-vba.html#post272370 Raystafarian vor 7 Jahren 0
Eingaben aus dem Beitrag http://stackoverflow.com/questions/375457/cant-instantiate-a-com-object-written-in-c-sharp-from-vba-vb6-ok Ich habe das Update KB907417 für Office 2003 und das Problem installiert ist gelöst! pat2015 vor 7 Jahren 0
Wenn Sie es gelöst haben, posten Sie bitte eine Selbstantwort Raystafarian vor 7 Jahren 0

2 Antworten auf die Frage

3
pat2015

Ein ähnliches Problem wurde unter https://stackoverflow.com/questions/375457/cant-instantiate-a-com-object-written-in-c-sharp-from-vba-vb6-ok auf Stackoverflow.com erörtert. Der Benutzer hat den gleichen "Automatisierungsfehler" 0x80131700 in Excel VBA erhalten.

Ich nahm die Eingaben aus den dort veröffentlichten Antworten und installierte Office 2003 Update KB907417 von http://www.microsoft.com/de-de/download/details.aspx?id=10624. Das Problem wurde behoben.

0
clementgamache

Das Problem kann durch die Installation von .NET Framework 3.5 gelöst werden: https://www.microsoft.com/de/ca/download/details.aspx?id=21

Nur eine Link-Antwort ist nutzlos, vor allem wenn sie kaputt geht. Toto vor 6 Jahren 0