【发布时间】:2021-09-28 22:55:41
【问题描述】:
我有一个由 Outlook 规则触发的宏,它处理特定的传入电子邮件内容并将相关数据导出到 Excel 电子表格。
处理完电子邮件后,我想更改其类别并移至另一个文件夹。
在下面的代码中,对象“item”是给宏的电子邮件。
我的想法是使用 LastModificationTime 属性作为“item.LastModificationTime”找到原始 Outlook.MailItem 并执行操作。
似乎代码在带有“aux1”或“aux2”过滤器的Set myItem = myItems.Restrict(aux2).item(1)处停止。
我没有任何错误,但没有执行该行之后的命令。
Sub ExportToExcel(item As Outlook.MailItem)
Dim aux As String
Dim aux2 As String
Dim myInbox As Outlook.Folder
Dim myDestFolder As Outlook.Folder
Dim myItems As Outlook.Items
Dim myItem As Outlook.MailItem
'(irrelevant code that does email processing and excel spreadsheet writing...)
Set myInbox = Session.GetDefaultFolder(olFolderInbox)
Set myItems = myInbox.Folders("BACKUP").Items
MsgBox (myItems.item(1).Subject) 'Runs OK
aux = "[LastModificationTime] = """ & Format(item.LastModificationTime, "ddddd hh:nn") & """" 'just another try
aux2 = "[LastModificationTime] = """ & item.LastModificationTime & """"
MsgBox (aux) 'Runs OK
MsgBox (aux2) 'Runs OK
Set myItem = myItems.Restrict(aux2).item(1) 'Seems the code stops here with no error
MsgBox ("Here") 'Does NOT run from here on
MsgBox (myItem.Subject)
myItem.Categories = "Categoria Laranja"
Set myDestFolder = myInbox.Folders("BACKUP_Processed")
myItem.Move (myDestFolder)
End Sub
编辑:我意识到我不需要“myItem”。我可以直接在传入的“项目”上执行我的任务。
【问题讨论】: