Outlook vba邮件项目案例
我正在尝试在Outlook 2013的vba中定义MailItem变量。但是,每次我将Dim mail键入为MailItem时,MailItem都会更新为MailItem。据我所知,这不是正确的类型。当我尝试MsgBox TypeNamemail时,它什么也不显示 我不知道为什么会这样。任何帮助都将不胜感激。谢谢 整个代码如下所示Outlook vba邮件项目案例,vba,outlook,camelcasing,typename,mailitem,Vba,Outlook,Camelcasing,Typename,Mailitem,我正在尝试在Outlook 2013的vba中定义MailItem变量。但是,每次我将Dim mail键入为MailItem时,MailItem都会更新为MailItem。据我所知,这不是正确的类型。当我尝试MsgBox TypeNamemail时,它什么也不显示 我不知道为什么会这样。任何帮助都将不胜感激。谢谢 整个代码如下所示 Private Sub Items_ItemAdd(ByVal newMail As Object) 'On Error Resume Next O
Private Sub Items_ItemAdd(ByVal newMail As Object)
'On Error Resume Next
On Error GoTo ErrorHandler
Dim mail As Outlook.mailItem
If TypeName(newMail) = TypeName(mail) Then ***<-- I want this if block to execute. But it doesn't!***
Set mail = newMail
SaveAttachments (newMail)
End If
ProgramExit:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ProgramExit
End Sub
TypeName将显示活动对象的类型名称。如果它从未被初始化为null,您将什么也看不到
话虽如此,你究竟什么时候看到暗淡的陈述发生了变化?在Outlook VBA编辑器中?您知道VBA不区分大小写,是吗?也就是说,MailItem和MailItem是非常相似的。我知道。但是,为什么TypeName没有显示任何内容?根据Dimitry的回答,您可能需要设置mail=ActiveInspector.CurrentItem之类的内容。我仍然不确定解决方案。我已经在上面添加了代码。请帮我看一下!VBA不区分大小写,因此两种声明都可以使用。由于变量尚未初始化,因此TypeName中没有任何内容。这很好。您应该将如果TypeNamenewMail=TypeNamemail更改为如果TypeNamenewMail=MailItem