У меня возникает ошибка кода при отладке. Я ищу, чтобы сохранить элементы, которые я получаю на своем жестком диске, и называть их по-разному. У меня нет проблем.Ошибка кода при попытке переместить .msg обратно в Outlook
Проблема возникает, когда я пытаюсь импортировать их обратно в Outlook. Это дает мне ошибку: Ошибка компиляции Пользовательский тип не определен. на определенной строке.
Вот мой код:
В моем первом модуле
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
На втором модуле
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
Я также активировал Microsoft Scripting время выполнения Reference. Первый модуль работает отлично и сохраняет вложения с конкретными именами, но второй модуль получает ошибку: Ошибка компиляции определяемого пользователем типа не определен на линии
Dim Savefolder As Outlook.Folder
Любая помощь приветствуется !!
Это исправление моей проблемы, но теперь у меня проблема с строкой: Set oMsg = Session.OpenSharedItem (FileItem.Path) Указывает при запуске макроса: объект времени выполнения438 не поддерживает это свойство или метод –
Какая версия Outlook вы используете? –
Outlook 2003 @Dmitry Streblechenko –