Excel VBA无法编译 - MD5哈希函数

时间:2014-09-04 22:08:40

标签: excel vba excel-vba excel-2011

现在尝试在Excel 2011 for Mac中实现VBA模块,我通过互联网找到了。在您看到As String

的第三行,以下模块失败
Option Explicit

Public Function MD5Hash( _
  ByVal strText As String) _
  As String

' Create and return MD5 signature from strText.
' Signature has a length of 32 characters.
'
' 2005-11-21. Cactus Data ApS, CPH.

  Dim cMD5          As New clsMD5
  Dim strSignature  As String

  ' Calculate MD5 hash.
  strSignature = cMD5.MD5(strText)

  ' Return MD5 signature.
  MD5Hash = strSignature

  Set cMD5 = Nothing

End Function

Public Function IsMD5( _
  ByVal strText As String, _
  ByVal strMD5 As String) _
  As Boolean

' Checks if strMD5 is the MD5 signature of strText.
' Returns True if they match.
' Note: strText is case sensitive while strMD5 is not.
'
' 2005-11-21. Cactus Data ApS, CPH.

  Dim booMatch  As Boolean

  booMatch = (StrComp(strMD5, MD5Hash(strText), vbTextCompare) = 0)
  IsMD5 = booMatch

End Function

VBA compiler error

希望有人可以帮忙,因为这是我第一次玩VBA。感谢帮助!

更新

错误消息文字:

  

未定义的用户定义类型

1 个答案:

答案 0 :(得分:1)

我弄清楚了问题,看起来我对VBA界面缺乏了解。结果我的Class Module没有正确命名。我最终从头开始重建模块,VBA能够在不同的行上给我一个不同的错误,指向clsMD5的引用。以下是我修复它的方法:

1)打开VBA"窗口"按alt+F11

2)使用"属性"窗口编辑类模块的名称,在上面的问题我需要将名称更改为clsMD5

Properties window VBA