我正在尝试将Outlook附件保存在本地目录“文档”中,但我正在获取文件夹已存在错误

时间:2019-05-25 15:08:29

标签: vba outlook-vba

我试图在收件箱中通过名称“ MacroEnabled”访问子文件夹,并试图找出其中的所有附件并将其保存到本地驱动器。我可以使用代码按名称“ Documents”创建文件夹,并且还可以保存附件。但是,在执行第二次迭代时会中断,并说文件已经存在错误“ 58”。

Dim ns As NameSpace
Dim olFolder_Inbox As Folder
Dim olMail As MailItem
Dim olAttachment As Attachment
Dim FolderPath As String
Dim fso As Object
Dim File_Saved As String

'email service type
Set ns = GetNamespace("MAPI")
Set olFolder_Inbox = ns.GetDefaultFolder(olFolderInbox).Folders("MacroEnabled")

Set fso = CreateObject("Scripting.FileSystemObject")
FolderPath = "Documents"
For Each olMail In olFolder_Inbox.Items

    If TypeName(olMail) = "MailItem" And olMail.Attachments.Count > 0 Then
        fso.CreateFolder ("Documents")


        For Each olAttachment In olMail.Attachments

            olAttachment.SaveAsFile fso.BuildPath(FolderPath, olAttachment.FileName)

        Next olAttachment

    End If

Next olMail

Set ns = Nothing
Set fso = Nothing

结束子

我希望代码查找特定文件夹中的所有附件。

2 个答案:

答案 0 :(得分:1)

首先FolderPath应该显示完整路径,例如FolderPath = "C:\Documents" 如果需要,您可以使用相对路径,例如FolderPath = CurrentProject.Path & "\Documents" 然后,您可以通过添加以下指令循环使用FolderExisits方法:

If Not fso.FolderExists(FolderPath) Then fso.CreateFolder (FolderPath )

答案 1 :(得分:0)

For Each olMail In olFolder_Inbox.Items fso.CreateFolder ("Documents_path")

查看此内容,然后尝试在创建另一个文件夹之前检查文件夹Documents是否存在