Vba 如何从分配给特定类别的传入电子邮件中下载附件,并在下载后更改类别?

Vba 如何从分配给特定类别的传入电子邮件中下载附件,并在下载后更改类别?,vba,outlook,Vba,Outlook,我创建了一个宏,用于从分配给特定类别的电子邮件下载附件,并将电子邮件分配给其他类别 Public Sub SaveNewInvoices(oItem As Outlook.Item) Dim oAttachment As Outlook.Attachment Dim sSaveFolder As String Dim cats() As String Dim i As Integer sSaveFolder = "D:\Users\fakathuria\Desktop\Invoices_Pr

我创建了一个宏,用于从分配给特定类别的电子邮件下载附件,并将电子邮件分配给其他类别

Public Sub SaveNewInvoices(oItem As Outlook.Item)

Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
Dim cats() As String
Dim i As Integer

sSaveFolder = "D:\Users\fakathuria\Desktop\Invoices_Prepared\"

cats = Split(oItem.Categories, ";")

    For i = 0 To UBound(cats)

        If LCase$(cats(i)) = LCase$(Invoice_To_Be_Downloaded) Then

            For Each oAttachment In oItem.Attachments
                oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
                oItem.Categories = "Invoice_Downloaded"
            Next

        EndIf

    Next

End Sub
我使用规则对具有特定主题行的电子邮件进行分类,并将宏附加到规则以下载分配给该类别的附件。宏随后将这些电子邮件重新分配到不同的类别

Public Sub SaveNewInvoices(oItem As Outlook.Item)

Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
Dim cats() As String
Dim i As Integer

sSaveFolder = "D:\Users\fakathuria\Desktop\Invoices_Prepared\"

cats = Split(oItem.Categories, ";")

    For i = 0 To UBound(cats)

        If LCase$(cats(i)) = LCase$(Invoice_To_Be_Downloaded) Then

            For Each oAttachment In oItem.Attachments
                oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
                oItem.Categories = "Invoice_Downloaded"
            Next

        EndIf

    Next

End Sub

我希望附件可以下载到指定的文件夹中。但是,附件不会保存在指定的文件夹中,并且类别不会更改。

Outlook.Item
。。。从没听说过。看起来您应该使用
Outlook.MailItem


如果您在另一个子系统中使用
Outlook.Items
,然后在传递
Outlook.Items(index)
Outlook.Item
时调用此子系统,则容易理解混淆。。。从没听说过。看起来您应该使用
Outlook.MailItem


如果您在另一个子系统中使用
Outlook.Items
,然后在传递
Outlook.Items(index)

时调用该子系统,则很容易理解混淆。我将
EndIf
添加到
Next
之后,您在编辑文章时丢失了该子系统。这会导致你的代码出错。我在
Next
之后添加了
EndIf
,这是你在编辑文章时丢失的。这将导致代码出错。