powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Outlook Перемещение письма между общими папками
9 сообщений из 9, страница 1 из 1
Outlook Перемещение письма между общими папками
    #33959612
mirya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример кода. Пытаюсь переместить письмо из одной общей папки в другую.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub Test()
    Dim myApp As Outlook.Application
    Dim NameS As NameSpace
    Dim Folder As MAPIFolder
    
    Set myApp = CreateObject("Outlook.Application")
    Set NameS = myApp.GetNamespace("MAPI")
    Set Folder = NameS.GetDefaultFolder(olPublicFoldersAllPublicFolders)
    
    Set Letters = Folder.Folders.Item("Папка1").Folders.Item("Папка3").Folders.Item("Папка3").Items
    CountLetter = Letters.Count
    
    For i =  1  To CountLetter
        Set Letter = Letters.Item(i)
        
        Letter.Move (Folder.Folders.Item("Папка1").Folders.Item("Папка2").Folders.Item("Папка3").Folders.Item("Папка4"))
    Next
    
    MsgBox (CountLetter)
End Sub

Выдает ошибку: "Method 'Move' of object 'MailItem' failed"
...
Рейтинг: 0 / 0
Outlook Перемещение письма между общими папками
    #33960954
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых:
Dim Letters as Outlook.MailItem, т.к. по умолчанию возвращется объект класса Item

(и вообще, объявляйте переменные - меньше ошибок будет, например Counter)

А во-вторых - чем каждый раз в цикле ссылаться на суб-суб-субдиректорий, лучше один раз ДО цикла создать переменную, которая ссылается не этот субдиректорий.
...
Рейтинг: 0 / 0
Outlook Перемещение письма между общими папками
    #33960966
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще удостоверьтесь, что объекты перемещаемые между папками, могут быть туда перемещены (например, задачу не удастся переместить во входящие без дополнительной обработки)
...
Рейтинг: 0 / 0
Outlook Перемещение письма между общими папками
    #33961464
mirya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nibblesВо-первых:
Dim Letters as Outlook.MailItem, т.к. по умолчанию возвращется объект класса Item

Объявил
Letter as Outlook.MailItem
при присвоении Set Letter = Letters.Item(i) - выдает ошибку "несоответствие типов"
В отладчике смотрю, что Letters.Item(i) имеет тип "Vriant.Object.MailtItem".
Думаю в этом проблемма.
Как мне получить из этого объект Outlook.MailItem?
...
Рейтинг: 0 / 0
Outlook Перемещение письма между общими папками
    #33961583
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
та-а-ак...
во-первых, какая версия Outlook (в MSO'2000, например, нет такой константы - olPublicFoldersAllPublicFolders)?
во-вторых, в каком приложении находится процедура Test?
в-третьих, попытайся следующим образом сделать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub Test()
Dim myApp           As Outlook.Application
Dim NameS           As Outlook.NameSpace
Dim myItem          As Outlook.MailItem
Dim myFolder        As Outlook.MAPIFolder
Dim myFolderTarget  As Outlook.MAPIFolder
    
    Set myApp = CreateObject("Outlook.Application")
    Set NameS = myApp.GetNamespace("MAPI")
    
    ' Папка-источник
    Set myFolder = NameS.GetDefaultFolder(olPublicFoldersAllPublicFolders) _ 
            .Folders("Папка1").Folders("Папка3").Folders("Папка3")
    ' Папка-назначение
    Set myFolderTarget = myFolderTarget.Folders("Папка4")
    
    ' Перенос из одной папки в другую
    For Each myItem In myFolder.Items
        
        myItem.Move myFolderTarget
    
    Next
    
End Sub
...
Рейтинг: 0 / 0
Outlook Перемещение письма между общими папками
    #33961786
mirya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nibblesта-а-ак...
во-первых, какая версия Outlook (в MSO'2000, например, нет такой константы - olPublicFoldersAllPublicFolders)?
во-вторых, в каком приложении находится процедура Test?
в-третьих, попытайся следующим образом сделать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub Test()
Dim myApp           As Outlook.Application
Dim NameS           As Outlook.NameSpace
Dim myItem          As Outlook.MailItem
Dim myFolder        As Outlook.MAPIFolder
Dim myFolderTarget  As Outlook.MAPIFolder
    
    Set myApp = CreateObject("Outlook.Application")
    Set NameS = myApp.GetNamespace("MAPI")
    
    ' Папка-источник
    Set myFolder = NameS.GetDefaultFolder(olPublicFoldersAllPublicFolders) _ 
            .Folders("Папка1").Folders("Папка3").Folders("Папка3")
    ' Папка-назначение
    Set myFolderTarget = myFolderTarget.Folders("Папка4")
    
    ' Перенос из одной папки в другую
    For Each myItem In myFolder.Items
        
        myItem.Move myFolderTarget
    
    Next
    
End Sub


Версия: MSO 2003
Процедура находится в приложении Outlook
Ругается 'type mismatch' на строку "For Each myItem In myFolder.Items"
Тип myItem - 'MailItem'
Тип myFolder.Items - 'Object.Items'
...
Рейтинг: 0 / 0
Outlook Перемещение письма между общими папками
    #33961856
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?
Dim myItem As Object
...
Рейтинг: 0 / 0
Outlook Перемещение письма между общими папками
    #33961999
mirya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nibblesа так?
Dim myItem As Object

Пишет ошибку "Method 'Move' of object 'MailItem' failed"
...
Рейтинг: 0 / 0
Outlook Перемещение письма между общими папками
    #33962556
Фотография nibbles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirya nibblesа так?
Dim myItem As Object

Пишет ошибку "Method 'Move' of object 'MailItem' failed"

а вручную этот объект переносится из папки в папку?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Outlook Перемещение письма между общими папками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]