延迟绑定编译错误:用户定义的类型未定义的引用Outlook MailItem在Excel VBA中



我正在使用excel的后期绑定。

我得到

编译器错误:用户定义的类型未定义

for:

If TypeOf olMail Is MailItem Then

我声明以下变量:

Dim olApp As Object
Dim olNs As Object
Dim Fldr As Object
Dim olItms As Object
Dim olMail As Object
Set olApp = CreateObject("Outlook.Application")
Set olNs = olApp.GetNamespace("MAPI")
Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
Set olItms = Fldr.Items

代码工作正常,但是我必须更改为较晚绑定,因为用户不使用相同的Outlook版本。

我猜你遇到错误的原因是因为您不再对Outlook Object库的引用,因此MailItem是未知类型。

而不是使用TypeOf

If TypeOf olMail Is MailItem Then

使用TypeName函数将对象类型名称与字符串进行比较...

If TypeName(olMail) = "MailItem" Then

(请注意,我假设类型名称将是MailItem,但是您可以随时投入MsgBox TypeName(olMail),只是为了确保!(

类型名称函数有些昂贵。Class属性(由所有OOM对象实现(将是更好的Alternative。检查oMail.Class = 43(43是OlObjectClass.olMail常数(

最新更新