Vba 如果文件名中包含关键字,则保存电子邮件附件
我正在尝试从Outlook中提取pdf文件,如果该pdf文件的文件名中包含“ecritures” 到目前为止,我的代码在从子文件夹提取pdf时运行良好,但我想添加以下条件: 提取pdf文件:Vba 如果文件名中包含关键字,则保存电子邮件附件,vba,outlook,Vba,Outlook,我正在尝试从Outlook中提取pdf文件,如果该pdf文件的文件名中包含“ecritures” 到目前为止,我的代码在从子文件夹提取pdf时运行良好,但我想添加以下条件: 提取pdf文件: For Each Item In SubFolder.Items For Each Atmt In Item.Attachments If Right(Atmt.FileName, 3) = "pdf" Then FileName = "file path"
For Each Item In SubFolder.Items
For Each Atmt In Item.Attachments
If Right(Atmt.FileName, 3) = "pdf" Then
FileName = "file path"
Atmt.SaveAsFile FileName
i = i + 1
End If
Next Atmt
Next Item
我一直在阅读另一篇建议使用InStr(UCase)的帖子,但它对我不起作用。似乎我做错了,因为它没有返回关键字“ecritures”的值。有人有线索吗?下面是我的代码:
For Each Item In SubFolder.Items
For Each Atmt In Item.Attachments
If InStr(UCase(Atmt.FileName), "ecritures") > 0 Then
FileName = "file path"
Atmt.SaveAsFile FileName
i = i + 1
End If
Next Atmt
Next Item
谢谢!如果您想确保它们也是PDF,那么您可以使用
之类的操作符:
If LCase(Atmt.FileName) like "*ecritures*.pdf" Then
上述要求文件名包含ecritures
,但文件后缀(小写)为.pdf
使用“ecritures*.pdf”
(删除第一个星号)类似,但要求文件名以ecritures
开头,而不是仅仅包含它。如果使用UCase
则应与ecritures
进行比较。如果使用InStr(LCase(Atmt.filename),“ecritures”,则使用>0然后
…太好了,谢谢你,罗宾!对于那些反复在这两个部分上使用UCase或LCase的人,请在这两个部分上应用UCase或LCase。如果InStr(UCase(Atmt.FileName),UCase(“ecritures”)>0那么