我正在使用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
常数(