【发布时间】:2022-01-20 11:25:29
【问题描述】:
在 Outlook 365 上,由于我不是计算机的完全管理员,因此不允许使用规则 + 脚本。
我需要检查邮件何时到达,
如果它在主题中有一些特定的词
然后将附件保存在特定文件夹中(最好是邮件主题名称+日期戳),然后将邮件放入垃圾箱。
我尝试了下一个代码。
Option Explicit
Private WithEvents inboxItems As Outlook.Items
Private Sub Application_Startup()
Dim outlookApp As Outlook.Application
Dim objectNS As Outlook.NameSpace
Set outlookApp = Outlook.Application
Set objectNS = outlookApp.GetNamespace("MAPI")
Set inboxItems = objectNS.GetDefaultFolder(olFolderInbox).Items
End Sub
'--------------------- ok till here -----------
Private Sub inboxItems_ItemAdd(ByVal Item As Object)
On Error GoTo ErrorHandler
Dim Msg As Outlook.MailItem
Dim objAttachments As Outlook.Attachments
Set objAttachments = Msg.Attachments
If TypeName(Item) = "MailItem" Then
If InStr(Msg.Subject, "Magic Red Carpet") Then
objAttachments.SaveAsFile "C:\Users\xx12345\Desktop\vba\" & objAttachments.Msg.Subject&date
End If
End If
ErrorHandler:
MsgBox "dho!"
End Sub
【问题讨论】:
-
删除
On Error GoTo ErrorHandler。您可能会发现不使用错误处理会更好。如果您无法弄清楚错误消息的含义,请编辑问题以包含错误和行。 -
我已经尝试过不进行错误处理,但是在没有文件保存时没有显示消息/错误
-
Msg来自哪里? -
sry 无法理解关于“Msg”的问题
-
Msg中没有要使用的Msg.Attachments。应该有错误。
标签: vba outlook attachment