मेरे पास यह वीबीए कोड नीचे है (इस साइट पर बहुत ही सामान्य और साथ ही नेट पर अन्य स्थानों पर वीबीए में एसएचए हैश खोजने के लिए) जो विंडोज 7 32 पर एक्सेल 2013 में ठीक काम करता है।
हालाँकि एक ही कोड जब विंडोज 7 32 पर Excel 2003 SP3 में चलाया जाता है, तो लाइन सेट asc1 = CreateObject ("System.Text.UTF8Encoding") पर रन टाइम स्वचालन त्रुटि देता है।
मैं स्पष्ट नहीं हूँ कि यह Excel 2003 में विफल क्यों हो रहा है। यह मानते हुए कि यह डॉट नेट फ्रेमवर्क I के साथ डॉट नेट 4.0 को फिर से स्थापित करने के लिए कुछ है, जबकि 3.5.1 पहले से ही विंडोज 7 का हिस्सा है और फीचर पहले से ही सक्षम है।
इस साइट पर बहुत समान पोस्ट है यहाँ लेकिन यहां तक कि इसका कोई हल नहीं है। मुझे आगे और क्या समस्या निवारण करना चाहिए? क्या यह लापता या भ्रष्ट घटकों / पुस्तकालयों या संबंधित कुछ के साथ कुछ हो सकता है?
धन्यवाद।
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