Vba 如何下载主题以特定文本结尾的excel附件,然后打开附件进行编辑?

Vba 如何下载主题以特定文本结尾的excel附件,然后打开附件进行编辑?,vba,excel,Vba,Excel,我想从Outlook 2010下载附件。包含附件的邮件的主题不断变化。主题名称采用以下格式: “2010年(随机名称)西格玛报告” “2011年(随机名称)西格玛报告” 现在我想下载第一个Sigma报告。如何连接到Outlook并下载此文件?下面是我到目前为止使用的代码。我在第一个“For”语句中发现类型不匹配 Sub Attachment_Click() Const olFolderInbox As Integer = 6 Const AttachmentPath As String = "D

我想从Outlook 2010下载附件。包含附件的邮件的主题不断变化。主题名称采用以下格式:

“2010年(随机名称)西格玛报告”

“2011年(随机名称)西格玛报告”

现在我想下载第一个Sigma报告。如何连接到Outlook并下载此文件?下面是我到目前为止使用的代码。我在第一个“For”语句中发现类型不匹配

Sub Attachment_Click()
Const olFolderInbox As Integer = 6
Const AttachmentPath As String = "D:\Documents and Settings\rahul.baskaran\Desktop\"
Dim OApp As Object, ONS As Object, OInb As Object
Dim OItem, OAtch As Object
Dim OFind As Object
Dim OMail As Object

Set OApp = GetObject(, "Outlook.application")
Set ONS = OApp.GetNamespace("MAPI")
Set OInb = ONS.GetDefaultFolder(olFolderInbox)
Set OMail = OInb.Items
Set OFind = OMail.Find("[Subject] = ""*Sigma Report*""")

For Each OItem In OInb.Items.Restrict(OMail)

    If OItem.Attachments.Count <> 0 Then
        For Each OAtch In OItem.Attachments
            '~~> Download the attachment
            OAtch.SaveAsFile AttachmentPath & OAtch.Filename
            Exit For
        Next
    Else
        MsgBox "The mail doesn't have an attachment"
    End If
    Exit For
Next
End Sub
子附件\u单击()
常量olFolderInbox为整数=6
Const AttachmentPath As String=“D:\Documents and Settings\rahul.baskaran\Desktop\”
Dim OApp作为对象,ONS作为对象,OInb作为对象
以燕麦为对象
将OFID作为对象
将OMail作为对象
设置OApp=GetObject(,“Outlook.application”)
设置ONS=OApp.GetNamespace(“MAPI”)
设置OInb=ONS.GetDefaultFolder(olFolderInbox)
设置OMail=OInb.Items
Set of ID=OMail.Find(“[主题]=”*Sigma报告*”)
对于OInb.Items.Restrict(OMail)中的每个OItem
如果OItem.Attachments.Count为0,则
每种燕麦的油膜附件
“~~>下载附件
OAtch.SaveAsFile附件路径和OAtch.Filename
退出
下一个
其他的
MsgBox“邮件没有附件”
如果结束
退出
下一个
端接头
如果我删除
.Restrict(OMail)
部分,则代码可以正常工作,但即使邮件中有附件,它也总是处于“else”状态。有人能帮我解决这个问题吗?

您使用不正确-该函数只接受一个参数,即字符串过滤器。不幸的是,根据msdn参考资料

无法执行“包含”操作。例如,不能使用“查找”或“限制”来搜索“主题”字段中包含特定单词的项目。相反,您可以使用AdvancedSearch方法,也可以循环遍历文件夹中的所有项目,并使用InStr函数在字段中执行搜索


为什么不制定一个规则,然后按照“谢谢”来做呢。。我使用该解决方案的一部分成功地提取了文件。