By cristianvacca@gmail.com у понеділок, 05 листопада 2018 р
Опубліковано в прогноз
відповіді 2
симпатії 0
думки 5.6K
Голосів 0
Мій код працює.
Код робить це все, що я хочу.
Надто складний код. Я думаю, що воно має бути коротшим.
Мені потрібно ввести до 200 папок, і таким чином я повинен зробити дуже довгий код.
Необхідно перевірити всі повідомлення в усіх папках вхідної пошти. Усі, крім 2 папок. Папки, які не потрібно перевіряти, називаються "" і "".
Хтось мені допомагає?
Дякую.

Sub MoveItems7TEST()

Розтушуйте myNameSpace як Outlook.NameSpace
Зменшити myInbox як Outlook.Folder
Зменшити myInbox2 як Outlook.Folder
Зменшити myInbox3 як Outlook.Folder

Розтушуйте myDestFolder як Outlook.Folder

Dim myItems як Outlook.Items
Dim myItems2 як Outlook.Items
Dim myItems3 як Outlook.Items

Приглушити myItem як об’єкт

Встановити myNameSpace = Application.GetNamespace("MAPI")
'Пошта в прибуття
Встановити myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
'Стеф
Встановити myInbox2 = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Stef")
'Servizio
Встановити myInbox3 = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Servizio")

Встановіть myItems = myInbox.Items
Встановіть myItems2 = myInbox2.Items
Встановіть myItems3 = myInbox3.Items

Встановити myDestFolder = myInbox.Folders("Da completare")

Встановити myItem = myItems.Find("[FLAGSTATUS] = 8")
Хоча TypeName(myItem) <> "Нічого"
myItem.Move myDestFolder
Встановіть myItem = myItems.FindNext
Венед

Встановити myItem = myItems2.Find("[FLAGSTATUS] = 8")
Хоча TypeName(myItem) <> "Нічого"
myItem.Move myDestFolder
Встановіть myItem = myItems2.FindNext
Венед

Встановити myItem = myItems3.Find("[FLAGSTATUS] = 8")
Хоча TypeName(myItem) <> "Нічого"
myItem.Move myDestFolder
Встановіть myItem = myItems3.FindNext
Венед
End Sub
Переміщує елементи пошти Outlook до підпапки за електронною адресою
Варіант явний
Загальнодоступні допоміжні Move_Items()
' // Оголосити свої змінні
    Зменшити вхідні як Outlook.MAPIFolder
    Dim SubFolder As Outlook.MAPIFolder
    Зменшити значення як Outlook.NameSpace
    Темний елемент як об’єкт
    Зменшити елементи як Outlook.Items
    Dim lngCount As Long
    Помилка Перейдіть до MsgErr
' Встановити посилання на папку "Вхідні".
    Встановити olNs = Application.GetNamespace("MAPI")
    Встановити папку "Вхідні" = olNs.GetDefaultFolder(olFolderInbox)
    Набір елементів = Inbox.Items
' // Переглядайте елементи в папці назад
    Для lngCount = Items.Count To 1 Step -1
        Встановити елемент = Items(lngCount)
        Якщо Item.Class = olMail Тоді
            Виберіть Case Item.SenderEmailAddress
' // Email_One
                Кейс "Email_One@email.com"
' // Встановити підпапку папки "Вхідні".
                    Встановити SubFolder = Inbox.Folders("Folder One")
                    Set Item = Items.Find("[SenderEmailAddress] = 'Email_One@email.com'")
                    Якщо TypeName(Item) <> "Нічого", Тоді
' // Позначити як прочитане
                        Item.UnRead = Неправда
' // Перемістити елемент пошти до підтеки
                        Item.Move SubFolder
                    End If
' // Електронна пошта_Два
                Кейс "Email_Two@email.com"
' // Встановити підпапку папки "Вхідні".
                    Встановити SubFolder = Inbox.Folders("Папка друга")
                    Set Item = Items.Find("[SenderEmailAddress] = 'Email_Two@email.com'")
                    Якщо TypeName(Item) <> "Нічого", Тоді
' // Позначити як прочитане
                        Item.UnRead = Неправда
' // Перемістити елемент пошти до підтеки
                        Item.Move SubFolder
                    End If
            End Select
        End If
    Наступний lngCount
MsgErr_Exit:
    Встановити Вхідні = Нічого
    Встановити SubFolder = Нічого
    Встановити olNs = Нічого
    Встановити елемент = нічого
    Набір елементів = нічого
    Exit Sub
'// Інформація про помилку
MsgErr:
    MsgBox "Сталася неочікувана помилка." _
         & vbCrLf & "Номер помилки: " & Err.Number _
         & vbCrLf & "Опис помилки: " & Опис помилки _
         , vbCritical, "Помилка!"
    Відновити MsgErr_Exit
End Sub
Або перемістити всі вхідні елементи пошти до підтеки
Варіант явний
Загальнодоступні допоміжні Move_Items()
' // Оголосити свої змінні
    Зменшити вхідні як Outlook.MAPIFolder
    Dim SubFolder As Outlook.MAPIFolder
    Зменшити значення як Outlook.NameSpace
    Темний елемент як об’єкт
    Dim lngCount As Long
    Зменшити елементи як Outlook.Items
    Помилка Перейдіть до MsgErr
' Встановити посилання на папку "Вхідні".
    Встановити olNs = Application.GetNamespace("MAPI")
    Встановити папку "Вхідні" = olNs.GetDefaultFolder(olFolderInbox)
    Набір елементів = Inbox.Items
' // Переглядайте елементи в папці назад
    Для lngCount = Items.Count To 1 Step -1
        Встановити елемент = Items(lngCount)
        Debug.Print Item.Subject
        Якщо Item.Class = olMail Тоді
' // Встановити підпапку папки "Вхідні".
            Встановити SubFolder = Inbox.Folders("Temp")
' // Позначити як прочитане
            Item.UnRead = Неправда
' // Перемістити елемент пошти до підтеки
            Item.Move SubFolder
        End If
    Наступний lngCount
MsgErr_Exit:
    Встановити Вхідні = Нічого
    Встановити SubFolder = Нічого
    Встановити olNs = Нічого
    Встановити елемент = нічого
    Exit Sub
'// Інформація про помилку
MsgErr:
    MsgBox "Сталася неочікувана помилка." _
         & vbCrLf & "Номер помилки: " & Err.Number _
         & vbCrLf & "Опис помилки: " & Опис помилки _
         , vbCritical, "Помилка!"
    Відновити MsgErr_Exit
End Sub
·
3 років тому
·
0 Любить
·
0 голосів
·
0 Коментарі
·
Спробуйте вказаний нижче код:-
Sub MoveItems7TEST()

Розтушуйте myNameSpace як Outlook.NameSpace
Зменшити myInbox як Outlook.Folder
Зменшити myInbox2 як Outlook.Folder
Зменшити myInbox3 як Outlook.Folder

Розтушуйте myDestFolder як Outlook.Folder

Dim myItems як Outlook.Items
Dim myItems2 як Outlook.Items
Dim myItems3 як Outlook.Items

Приглушити myItem як об’єкт

Встановити myNameSpace = Application.GetNamespace("MAPI")
'Пошта в прибуття
Встановити myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
'Стеф
Встановити myInbox2 = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Stef")
'Servizio
Встановити myInbox3 = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Servizio")

Встановіть myItems = myInbox.Items
Встановіть myItems2 = myInbox2.Items
Встановіть myItems3 = myInbox3.Items

Встановити myDestFolder = myInbox.Folders("Da completare")

Встановити myItem = myItems.Find("[FLAGSTATUS] = 8")
Хоча TypeName(myItem) <> "Нічого"
myItem.Move myDestFolder
Встановіть myItem = myItems.FindNext
Венед

Встановити myItem = myItems2.Find("[FLAGSTATUS] = 8")
Хоча TypeName(myItem) <> "Нічого"
myItem.Move myDestFolder
Встановіть myItem = myItems2.FindNext
Венед

Встановити myItem = myItems3.Find("[FLAGSTATUS] = 8")
Хоча TypeName(myItem) <> "Нічого"
myItem.Move myDestFolder
Встановіть myItem = myItems3.FindNext
Венед
End Sub

Сподіваюся, ця інформація допоможе вам.
·
3 років тому
·
0 Любить
·
0 голосів
·
0 Коментарі
·
Переглянути повне повідомлення