2013-11-27 1 views
0

Я хочу загрузить вложение из Outlook 2010. Тема письма, содержащего вложение, продолжает меняться. Имена, подлежащие в следующем формате:Как загрузить приложение excel с темой, заканчивающимся определенным текстом, а затем открыть вложение для редактирования?

"2010 (случайное название) Sigma Report"

"2011 (случайное название) Sigma Report"

Теперь я хочу, чтобы загрузить первый Sigma отчет. Как подключиться к Outlook и загрузить это? Ниже приведен код, который я использовал до сих пор. Я получаю несоответствие типов в первом выражении «For».

Sub Attachment_Click() 
Const olFolderInbox As Integer = 6 
Const AttachmentPath As String = "D:\Documents and Settings\rahul.baskaran\Desktop\" 
Dim OApp As Object, ONS As Object, OInb As Object 
Dim OItem, OAtch As Object 
Dim OFind As Object 
Dim OMail As Object 

Set OApp = GetObject(, "Outlook.application") 
Set ONS = OApp.GetNamespace("MAPI") 
Set OInb = ONS.GetDefaultFolder(olFolderInbox) 
Set OMail = OInb.Items 
Set OFind = OMail.Find("[Subject] = ""*Sigma Report*""") 

For Each OItem In OInb.Items.Restrict(OMail) 

    If OItem.Attachments.Count <> 0 Then 
     For Each OAtch In OItem.Attachments 
      '~~> Download the attachment 
      OAtch.SaveAsFile AttachmentPath & OAtch.Filename 
      Exit For 
     Next 
    Else 
     MsgBox "The mail doesn't have an attachment" 
    End If 
    Exit For 
Next 
End Sub 

Если удалить .Restrict(OMail) части, то код работает отлично, но его всегда будет к «другому» состоянию, даже если почта имеет крепежный подарок. Может кто-нибудь, пожалуйста, помогите мне с этим?

+0

Почему бы не создать правило, а затем следуйте [это] (http://stackoverflow.com/questions/11781320/download-attachment-from-outlook-and-open-in-excel/11782153#11782153) –

+0

Спасибо. Я использовал часть этого решения, чтобы извлечь файл успешно. –

ответ

1

Неправильно используется Restrict - функция принимает единственный параметр, который является фильтром строк. К сожалению, согласно ссылке msdn,

Невозможно выполнить операцию «содержит». Например, вы не можете использовать Find или Restrict для поиска элементов, которые содержат определенное слово в поле Subject. Вместо этого вы можете использовать метод AdvancedSearch или можете пропустить все элементы в папке и использовать функцию InStr для выполнения поиска в поле.

Смежные вопросы