2017-09-11 1 views
0

Je tente d'enregistrer un fichier Excel (.xlsm) dans un e-mail. Je reçois cet email par un autre email.Enregistrement de la pièce jointe d'une pièce jointe d'un e-mail

Je souhaite télécharger le fichier .xlsm sur un lecteur partagé. Rechercher plusieurs forums en ligne et MSDN aide j'ai écrit le code suivant:

Lorsque je cours ce code, je ne reçois aucune erreur. Aucun fichier n'est enregistré.

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

double possible de [code VBA pour enregistrer une pièce jointe (fichier Excel) à partir d'un e-mail Outlook qui était dans un autre e-mail comme pièce jointe] (https://stackoverflow.com/questions/7890612/vba -code-à-enregistrer-une-pièce jointe-excel-fichier-d'un-outlook-email-that-was-insid) – niton

+0

@niton Je suis d'accord que le résultat souhaité est le même mais le problème particulier rencontré dans ce cas est différent de ce cas –

Répondre

0

J'ai trouvé la solution pendant que je cours le code ligne par ligne.

L'instruction if indique de rechercher les mots ".msg" et ".xlsm" dans le nom d'affichage de la pièce jointe. En recherche, le nom d'affichage ne prend pas l'extension de fichier dans le nom d'affichage. Par conséquent, pour résoudre ce problème, ".msg" et ".xlsm" ont dû être remplacés par le nom du fichier.

Merci,