Мне нужна помощь в коде Excel VBA. Я пытаюсь открыть вложение электронной таблицы Excel в электронном письме Outlook, используя VBA в файле Excel.Как я могу сделать следующие шаги в Excel vba:
- Откройте Outlook, перейдите в подпапку «Входящие» «Отчеты о тестах».
- Поиск конкретной темы и отправителя на сегодняшний деньдата или самая последняя дата в непрочитанных электронных письмах.
- Откройте вложение или скопируйте данные в файл Excel вложения.
- Активируйте уже открытую книгу Excel.Имя рабочей книги - «Fed 10».
- Скопируйте данные вложения в рабочую книгу «Fed 10», лист «Анализ».
- Закройте вложение и отметьте письмо как прочитанное.
Я использовал код, упомянутый в одном из постов, но он не работает так, как я хочу.
У меня Excel 2010, если кто-то может помочь, я буду очень благодарен, если вы опишитекод шаг за шагом, который будет потрясающим.
Заранее спасибо
Код, упомянутый ниже:
Const olFolderinbox As Integer = 6
'--> Path for the attachment
Const AttachmentPath As String = "C:\Test\"
Sub ExtractAttachmentFromEmail()
Dim o01Ap As Object, oOlns As Object, o011nb As Object
Dim o011tm As Object
'--> Outlook Variables for email
Dim eSender As String, dtRecvd As String, dtSent As String
Dim sSubj As String, sMsg As String
'--> Get Outlook instance
Set oOlAp = GetObject(, "Outlook.application")
Set oOlns = oOlAp.GetNamespace("MAPI")
Set o011nb = oOlns.GetDefaultFolder(olFolderinbox)
'--> Check if there are any actual unread emails
If oOlInb.Items.Restrict("[UnRead] = True").Count = 0 Then
MsgBox "NO Unread Email In Inbox"
Exit Sub
End If
'--> Store the relevant info in the variables
For Each o011tm In oOlInb.Items.Restrict("[UnRead] = True")
eSender = oOlItm.SenderEmailAddress
dtRecvd = oOlItm.ReceivedTime
dtSent = o011tm.CreationTime
sSubj = oOlItm.Subject
sMsg = oOlItm.Body
Exit For
Next
'--> New File Name for the attachment
Dim NewFileName As String
NewFileName = AttachmentPath & Format(Date, "DD-MM-YYYY") & "-"
'--> Extract the attachment from the 1st unread email
For Each o011tm In oOlInb.Items.Restrict("[UnRead] = True")
'--> Check if the email actually has an attachment
If oOlItm.Attachments.Count <> 0 Then
For Each oOlAtch In o011tm.Attachments
'--> Download the attachment
o0lAtch.SaveAsFile NewFileName & o0lAtch.Filename
Exit For
Next
Else
MsgBox "The First item doesn;t have an attachment"
End If
Exit For
End Sub