【发布时间】:2019-05-25 15:08:28
【问题描述】:
我正在尝试在收件箱中按名称“MacroEnabled”访问子文件夹,找到其中的所有附件并将它们保存到本地驱动器。
我使用此代码创建一个名为“文档”的文件夹并保存附件。但是,在进行第二次迭代时,它说文件已经存在错误“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
End Sub
【问题讨论】:
-
看起来您的代码不断尝试重新创建
Documents文件夹?所以你可能需要先检查它是否存在,至少假设它在你第一次创建它之后就存在。 -
您可以使用FolderExists method 进行检查。
-
如果两个附件名称相同,则同样适用于附件。