Excel VBA - Erro de automação de tempo de execução

0

Eu tenho isso abaixo do código VBA (bastante comum encontrado neste site em si, bem como em outros lugares na rede para encontrar SHA hash no VBA) que funciona muito bem no Excel 2013 no Windows 7 32.

No entanto, o mesmo código quando executado no Excel 2003 SP3 no Windows 7 32 fornece erro de automação de tempo de execução na linha Definir asc1 = CreateObject ("System.Text.UTF8Encoding")

Não estou claro por que ele está falhando no Excel 2003. Supondo que ele tenha algo a ver com o dot net framework, re-instalei o dot Net 4.0, enquanto o 3.5.1 já faz parte do Windows 7 e do Feature já ativado.

Existe uma publicação muito semelhante neste site aqui mas mesmo assim não tem solução. O que mais devo resolver ainda mais? Isso pode ter algo a ver com componentes / bibliotecas ausentes ou corrompidos ou algo relacionado?

Obrigado.

 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

    
por pat2015 06.05.2016 / 17:06

2 respostas

3

Um problema semelhante foi discutido em link no Stackoverflow.com. O usuário recebeu o mesmo "erro de automação" 0x80131700 no Excel VBA.

Com base nas respostas postadas, instalei o Office 2003 Update KB907417 do link e o problema está resolvido.

    
por 09.05.2016 / 15:30
0

O problema pode ser resolvido com a instalação do .NET Framework 3.5: link

    
por 12.03.2018 / 20:02