2017-09-11 83 views
0

我试图保存电子邮件中的Excel(.xlsm)文件。我通过另一封电子邮件收到此邮件。保存电子邮件附件的附件

我想将上述.xlsm文件下载到共享驱动器。查找多个在线论坛和MSDN帮助我写了以下代码:

当我运行此代码时,我没有收到任何错误。也没有保存任何文件。

Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
    Dim objAtt As Outlook.Attachment 
    Dim msgAtt As Outlook.Attachment 
    Dim saveFolder As String 
    ' a to i are dummy names and have been replaced with correct folder path in real code 
    saveFolder = "\\a\b\c\d\e\f\g\h\i" 
    For Each objAtt In itm.Attachments 
     If InStr(objAtt.DisplayName, ".msg") Then 
      For Each msgAtt In itm.Attachments 
       If InStr(msgAtt.DisplayName, ".xlsm") Then 
        msgAtt.SaveAsFile saveFolder & "\" & msgAtt.DisplayName 
       End If 
      Next 
     Set msgAtt = Nothing 
    End If 
Next 
Set objAtt = Nothing 
End Sub 
+2

的可能的复制[VBA代码保存附件(Excel文件)从Outlook的电子邮件,这是另一个电子邮件内作为附件(https://stackoverflow.com/questions/7890612/vba -code-to-save-an-attachment-excel-from-an-an-an-outlook-email-that-ins-ins) – niton

+0

@niton我同意所期望的结果是一样的,但在这种情况下面临的特定问题是不同于那种情况 –

回答

0

我在逐行运行代码时找到了解决方案。

if语句说要在附件的显示名称中查找“.msg”和“.xlsm”字。在调查中,显示名称不会将文件扩展名显示在显示名称中。

因此要解决这个问题,“.msg”和“.xlsm”必须由文件名替换。

谢谢,