2015-09-03 3 views
2

Я пытаюсь открыть вложение Excel с помощью правила Outlook. Я использую ниже VBA, чтобы сделать это:Открыть вложение Excel с помощью Outlook 2010

Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 

Dim objAtt As Outlook.Attachment 
Dim xlApp As Object 
Dim FileName As String 

For Each objAtt In itm.Attachments 
    If InStr(objAtt.DisplayName, ".xlsx") Then 
     FileName = "S:\Projects\" & objAtt 
     objAtt.SaveAsFile FileName 
     Set xlApp = CreateObject("Excel.Application") 
     xlApp.Application.Visible = True 
     xlApp.Application.EnableEvents = False 
     x1App.Workbooks.Open FileName 
    End If 

    Set objAtt = Nothing 
Next 
MsgBox ("DONE") 

End Sub 

Это открывает приложение Excel, однако на открытом имя_файл линии, она закрывает приложение Excel и выпрыгивает из кода.

Также, пожалуйста, дайте мне знать, если я делаю это чрезмерно сложным способом!

+0

удалите части '.Application' -' xlApp.Visible = True' – Slai

ответ

1

Похоже, вы передаете неправильный путь файла для открытого способа:

FileName = "S:\Projects\" & objAtt 

Попробуйте использовать DisplayName свойство класса вложений.

FileName = "S:\Projects\" & objAtt.DisplayName 

Также убедитесь, что у вас есть достаточные права на запись на диск S и вы можете получить к нему доступ в любое время. Попробуйте указать любой локальный диск.

+0

Благодарим за это, добавили в часть отображаемого имени, но, похоже, не решили ее. Он способен сэкономить файл отлично, но затем он выкидывает, когда я пытаюсь его открыть. Вот что такое странный бит, он не дает мне никаких ошибок, он просто выпрыгивает из кода на этой строке, не говоря о том, почему ... 'x1App.Workbooks.Open FileName' – NanaB

+0

Каков был фактический файл имя? –

+0

Фактическое имя файла: «Оценка: ПРИМЕЧАНИЯ ЕЖЕДНЕВНО (только для внутреннего использования) _20150904.xlsx» с изменением даты. Нормально ли для vba просто закончиться без какой-либо отладки? Я не видел этого раньше ... – NanaB

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