Vba Outlook 2010-从约会提醒创建电子邮件-多个类别

Vba Outlook 2010-从约会提醒创建电子邮件-多个类别,vba,email,outlook,Vba,Email,Outlook,计划:Outlook 2010 要求: 当约会触发时发送电子邮件。将使用多个类别 问题: 日历显示VBA代码第二部分中的正确类别,但当电子邮件触发时,日历将恢复为第一类别并使用这些参数发送。代码如下: Private Sub Application_Reminder(ByVal Item As Object) Dim objMsg As MailItem Set objMsg = Application.CreateItem(olMailItem) If Item.MessageClass &

计划:Outlook 2010

要求:
当约会触发时发送电子邮件。将使用多个类别

问题:
日历显示VBA代码第二部分中的正确类别,但当电子邮件触发时,日历将恢复为第一类别并使用这些参数发送。代码如下:

Private Sub Application_Reminder(ByVal Item As Object)
Dim objMsg As MailItem
Set objMsg = Application.CreateItem(olMailItem)

If Item.MessageClass <> "IPM.Appointment" Then
    Exit Sub
End If

If Item.Categories <> "Cat - Test (1)" Then
    objMsg.To = Item.Location
    objMsg.Subject = Item.Subject & " | " & Format(Now, "YYYYMMDD")
    objMsg.HTMLBody = Format(Now, "Long Date") & Item.Body
    objMsg.CC = "email"
    objMsg.BCC = "email 1, 2, 3"
    objMsg.Categories = "Cat - Test (1)"
    objMsg.Send

    'this is the code that reverts to the one above at the time of sending, _
    'but looks as it should in the calendar preview.
    ElseIf Item.Categories <> "Cat - Test (2)" Then
    objMsg.To = Item.Location
    objMsg.Subject = Item.Subject & " | " & Format(Now, "YYYYMMDD")
    objMsg.HTMLBody = Format(Now, "Long Date") & Item.Body
    objMsg.CC = "email"
    objMsg.BCC = "emails"
    objMsg.Categories = "Cat - Test (2)"
    objMsg.Send
Else
    Exit Sub
End If

Set objMsg = Nothing
End Sub  
私有子应用程序\u提醒(ByVal项作为对象)
Dim objMsg作为邮件项
设置objMsg=Application.CreateItem(olMailItem)
如果Item.MessageClass为“IPM.Appointment”,则
出口接头
如果结束
如果项目类别为“Cat试验(1)”,则
objMsg.To=项目位置
objMsg.Subject=Item.Subject&“|”和格式(现在为“YYYYMMDD”)
objMsg.HTMLBody=格式(现在为“长日期”)&Item.Body
objMsg.CC=“电子邮件”
objMsg.BCC=“电子邮件1、2、3”
objMsg.Categories=“Cat-测试(1)”
发送
'这是在发送时恢复为上述代码的代码_
'但在日历预览中看起来应该如此。
其他项目。类别“Cat测试(2)”然后
objMsg.To=项目位置
objMsg.Subject=Item.Subject&“|”和格式(现在为“YYYYMMDD”)
objMsg.HTMLBody=格式(现在为“长日期”)&Item.Body
objMsg.CC=“电子邮件”
objMsg.BCC=“电子邮件”
objMsg.Categories=“Cat-测试(2)”
发送
其他的
出口接头
如果结束
设置objMsg=Nothing
端接头
任何建议,似乎我可能缺少某种结尾,或者使用
IF/elseIF
的正确方法。我尝试添加并省略了一些IF,elseIF,但我无法正确触发它

我还创建了一个没有类别的日历约会,但在“位置”字段中有一封电子邮件,它仍然会触发宏运行



提前谢谢。

查看您的代码如果
项.Categories
的值为
“Cat-Test(2)”
,则您要将
objMsg.Categories
设置为
“Cat-Test(1)”
,尝试在if/elseif语句中用
=
替换

如果
项.Categories
的值为“Cat-Test(2)”,则查看代码,然后将
objMsg.Categories
设置为“Cat-Test(1)”。这就是你的意图吗?如果没有,请尝试将If/elseif语句中的
替换为
=
。@GrahamAnderson谢谢,这是我的答案。如果你把它作为答案写下来,我可以帮你记下来。明亮的不客气,我已经发布了答案。