我正在使用Excel的后期绑定。
我明白了
编译器错误:未定义用户定义类型
针对:
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版本不同,我不得不更改为后期绑定。
答案 0 :(得分:2)
我猜测您收到错误的原因是因为您不再引用Outlook对象库,因此MailItem
是未知类型。
代替使用TypeOf
If TypeOf olMail Is MailItem Then
使用TypeName
函数将对象类型名称与字符串进行比较...
If TypeName(olMail) = "MailItem" Then
(请注意,我假设类型名称为MailItem
,但您可以随时输入MsgBox TypeName(olMail)
以确保!)
答案 1 :(得分:0)
类型名称功能有些昂贵。 Class
属性(由所有OOM对象实现)将是更好的替代方法。检查oMail.Class = 43
(43是OlObjectClass.olMail
常量)