Vba 如果文件名中包含关键字,则保存电子邮件附件

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"

我正在尝试从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"
         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那么