Сохранить несколько вложений электронной почты только на текущую дату - PullRequest
0 голосов
/ 17 сентября 2018

Я новичок в VBA. Я подготовил один код для загрузки нескольких вложений электронной почты только на текущую дату, но всякий раз, когда я выполняю этот макрос, он дает мне:

Ошибка автоматизации, система не может найти указанный путь

Может кто-нибудь взглянуть на вставленный ниже код и помочь мне. Спасибо

Sub Outlook_Attachments()

Dim OLOOK As Outlook.Application
Dim OMAIL As Outlook.MailItem
Dim ONS As Outlook.Namespace
Dim FOL As Outlook.Folder
Dim SFOLDER As String
Dim FNAME As String
Set OLOOK = New Outlook.Application
Set OMAIL = OLOOK.CreateItem(olMailItem)
Set ONS = OLOOK.GetNamespace("MAPI")
Set FOL = ONS.GetDefaultFolder(olFolderInbox).Folders("Test")
SFOLDER = "D:\"
FNAME = SFOLDER & Format(Date, "MM/DD/YYYY") & "*"  
For Each OMAIL In FOL.Items
    For Each ATMT In OMAIL.Attachments
        ATMT.SaveAsFile FNAME & ATMT.DisplayName
    Next
Next
End Sub

1 Ответ

0 голосов
/ 17 сентября 2018

Попробуйте это:

 Sub Outlook_Attachments()

Dim OLOOK As Outlook.Application
Dim OMAIL As Outlook.MailItem
Dim ONS As Outlook.Namespace
Dim FOL As Outlook.Folder
Dim SFOLDER As String
Dim FNAME As String
Set OLOOK = New Outlook.Application
Set OMAIL = OLOOK.CreateItem(olMailItem)
Set ONS = OLOOK.GetNamespace("MAPI")
Set FOL = ONS.GetDefaultFolder(olFolderInbox).Folders("Test")
SFOLDER = "D:\"
FNAME = SFOLDER & Format(Date, "MM-DD-YYYY") & "-"

For Each OMAIL In FOL.Items
    'check email recevied date
    If Format(OMAIL.ReceivedTime, "MM-DD-YYYY") = Format(Date, "MM-DD-YYYY") Then
        For Each ATMT In OMAIL.Attachments
            ATMT.SaveAsFile FNAME & ATMT.DisplayName
        Next
    End If
Next

End Sub

Использование '/' и '*' в имени файла / папки запрещено.

...