2017-01-13 1 views
0

Ich bekomme einen Code Fehler beim Debuggen. Ich möchte Elemente auf meiner Festplatte speichern und sie anders benennen. Das habe ich kein Problem damit.Code Fehler beim Versuch, .msg zurück in Outlook zu verschieben

Mein Problem tritt auf, wenn ich versuche, sie wieder in Outlook zu importieren. Es gibt mir einen Fehler: Kompilierfehler Benutzerdefinierter Typ nicht definiert. auf einer bestimmten Linie.

Hier ist mein Code:

In meinem ersten Modul

Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
    Dim objAtt As Outlook.Attachment 
    Dim Savefolder As String 
    Savefolder = "c:\temp" 
    For Each objAtt In itm.Attachments 
    stFileName = Savefolder & "\" & objAtt.DisplayName 
    i = 0 
JumpHere: 
    If Dir(stFileName) = "" Then 
    objAtt.SaveAsFile stFileName 
    Else 
    i = i + 1 
    stFileName = Savefolder & "\" & objAtt.DisplayName & " - " & i 
    GoTo JumpHere 
    End If 
    Set objAtt = Nothing 
    Next 
End Sub 

In meinem zweiten Modul

Sub ImportMessagesInFolder() 
    Dim fso As Scripting.FileSystemObject 
    Dim SourceFolder As Scripting.Folder 
    Dim SourceFolderName As String 
    Dim FileItem As Scripting.file 
    Dim strFile, strFileType As String 
    Dim oMsg As Object 
    Dim copiedMsg As MailItem 
    Dim Savefolder As Outlook.Folder 

    Set fso = New Scripting.FileSystemObject 
'Source folder 
    SourceFolderName = "C:\temp" 
    Set SourceFolder = fso.GetFolder(SourceFolderName) 

'Set the Outlook folder name 
    Set Savefolder = Session.GetDefaultFolder(olFolderInbox).Folders("Extra") 
    Set Savefolder = Application.ActiveExplorer.CurrentFolder 

    For Each FileItem In SourceFolder.Files 

    Set oMsg = Session.OpenSharedItem(FileItem.Path) 
     On Error Resume Next 

    Set copiedMsg = oMsg.Copy 
     copiedMsg.Move Savefolder 

    Set copiedMsg = Nothing 
    oMsg.Delete 
    Set oMsg = Nothing 

    Next FileItem 

    Set FileItem = Nothing 
    Set SourceFolder = Nothing 
    Set fso = Nothing 
End Sub 

ich auch die Microsoft Scripting Runtime Reference aktiviert. Das erste Modul funktioniert gut und speichert die Anlagen mit bestimmten Namen, aber zweiter Modul wird Fehler: Fehler beim Kompilieren benutzerdefinierten Typ nicht auf der Linie definiert

Dim Savefolder As Outlook.Folder 

Jede Hilfe ist willkommen !!

Antwort

0

Verwenden Sie stattdessen Outlook.MAPIFolder.

+0

Dies behoben mein Problem, aber jetzt bekomme ich ein Problem mit Zeile: Set oMsg = Session.OpenSharedItem (FileItem.Path) es angibt, wenn das Makro ausgeführt: Laufzeitfehler error438 Objekt unterstützt diese Eigenschaft oder Methode –

+0

Welche Version von Outlook benutzt du? –

+0

Outlook 2003 @Dmitry Streblechenko –

Verwandte Themen