Я хотел бы настроить VBA для автоматической загрузки вложений из непрочитанных электронных писем с темой "Shipment MTD"
во вложенной папке Inbox\Reports
и сохранения их в следующей папке C:\My Documents\Daily Shipments
Public Sub SaveAttachments()
Dim objOL As Outlook.Application
Dim objMsg As Outlook.MailItem 'Object
Dim objAttachments As Outlook.Attachments
Dim objSelection As Outlook.Selection
Dim i As Long
Dim lngCount As Long
Dim strFile As String
Dim strFolderpath As String
Dim strDeletedFiles As String
Dim dtDate As Date
Dim sName As String
' Get the path to your My Documents folder
strFolderpath = "C:\My Documents\Daily Shipment"
On Error Resume Next
' Instantiate an Outlook Application object.
Set objOL = CreateObject("Outlook.Application")
Set olNs = olApp.GetNamespace("MAPI")
Set Fldr = olNs.GetDefaultFolder(olFolderInbox).Folders("Reports")
Set myTasks = Fldr.Items
' Select unread items with required subject line
Set resultItems = myTasks.Restrict("[UnRead] = False AND [Subject] = ""Shipment MTD""")
' Get the collection of selected objects.
Set objSelection = resultItems
' The attachment folder needs to exist
' You can change this to another folder name of your choice
' Set the Attachment folder.
strFolderpath = strFolderpath & "\Daily Shipment\"
' Select attachements in messsage
Set objAttachments = objMsg.Attachments
' Check each selected item for attachments.
For Each resultItems In myTasks
lngCount = objAttachments.Count
If lngCount > 0 Then
dtDate = objMsg.SentOn
sName = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, vbUseSystem) & Format(dtDate, "hhnnss", vbUseSystemDayOfWeek, vbUseSystem) & "-" 'include DTS
For i = lngCount To 1 Step -1
' Get the file name.
strFile = sName & objAttachments.Item(i).FileName
' Combine with the path to the Temp folder.
strFile = strFolderpath & strFile
' Save the attachment as a file.
objAttachments.Item(i).SaveAsFile strFile
Next i
End If
Next
ExitSub:
Set objAttachments = Nothing
Set objMsg = Nothing
Set objSelection = Nothing
Set objOL = Nothing
End Sub
Я хочу выбрать только непрочитанные электронные письма в папке отчетов. Кажется, что VBA не выбирает это правильно.
MyTasks
илиolApp
) - person Chronocidal   schedule 05.04.2018Items
вresultItems
? (ПопробуйтеMsgBox resultItems.Count
) Ваш запрос DASL будет искать темы, которые точно соответствуют MTD отгрузки, не разрешены Re: MTD отгрузки или MTD отгрузки - 01.01.2018. - person Chronocidal   schedule 05.04.2018