如何让Outlook自动保存指定发件人邮件中的Excel附件?
Outlook VBA 自动保存指定发件人的Excel附件
下面是满足需求的VBA脚本,你可以直接复制到Outlook的模块中,修改对应参数后关联到你的邮件规则:
Sub SaveXlsxAttachmentFromSender(Item As Outlook.MailItem) ' 配置参数 Dim savePath As String Dim targetSender As String savePath = "C:\Your\Target\Folder\" ' 替换为你的硬盘保存路径,末尾保留反斜杠 targetSender = "sender@example.com" ' 替换为发件人X的邮箱地址或显示名称 Dim att As Outlook.Attachment Dim fileName As String ' 检查当前邮件是否来自目标发件人 If Item.SenderEmailAddress = targetSender Or Item.SenderName = targetSender Then ' 遍历邮件所有附件 For Each att In Item.Attachments ' 检查附件是否为XLSX文件 fileName = att.fileName If LCase(Right(fileName, 5)) = ".xlsx" Then ' 若目标路径已存在同名文件,先删除 If Dir(savePath & fileName) <> "" Then Kill savePath & fileName End If ' 保存附件到指定路径 att.SaveAsFile savePath & fileName End If Next att End If End Sub
关键说明:
- 需修改代码中的
savePath和targetSender为实际值,确保保存路径已提前创建(路径不存在会导致代码报错) - 脚本仅处理来自指定发件人的邮件,自动识别XLSX格式附件
- 保存前会删除目标路径下的同名旧文件,实现覆盖替换
- 在你已创建的邮件规则中,选择「执行操作」里的运行脚本,选中这个
SaveXlsxAttachmentFromSender宏即可关联生效
注意:Outlook的宏安全设置需调整为允许启用签名宏或所有宏(建议使用数字签名保障安全),否则脚本无法正常运行。
内容的提问来源于stack exchange,提问作者JBART
相关产品推荐
相关产品推荐

