我试图在收件箱中通过名称“ 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
结束子
我希望代码查找特定文件夹中的所有附件。
答案 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是否存在