Сохранить как MailItems в Outlook с VBA по теме - PullRequest
0 голосов
/ 15 мая 2018

Я борюсь с чем-то здесь.Я пытаюсь использовать первые символы в строке темы, чтобы сохранить элементы почты в разных папках на моем компьютере.

По какой-то причине строка: "Case oMail.Subject Like" TEST1 * "

выдает ошибку: «Переменная объекта или переменная блока не установлена»

Я не знаю, почему! Не могли бы вы помочь?

Вот перефразированный скрипт:

   Sub SavetoComputer() 
Dim objNS As Outlook.NameSpace: Set objNS = GetNamespace("MAPI")
Dim olFolder As Outlook.MAPIFolder
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Dim Item As Object
Dim oMail As Outlook.MailItem: Set oMail = Item
Dim SaveFolder As String
Dim TempSubject As String
Dim Serial As Integer, i As Integer

i = 0

For Each Item In olFolder.Items
    Serial = 0
    If TypeOf Item Is Outlook.MailItem Then
        Select Case True

        'Test case 1
        Case oMail.Subject Like "TEST1*"
        SaveFolder = "C:\Folder\Folder\Folder\"
        'Test case 2
        Case oMail.Subject Like "TEST2&"
        SaveFolder = "C:\Folder\Folder\Folder2\"
        Case Else
            i = i + 1
        End Select

On Error GoTo Continue
        oMail.SaveAs SaveFolder & oMail.Subject

Continue:
TempSubject = oMail.Subject & "Update: " & (Serial + 1)

    oMail.SaveAs SaveFolder & TempSubject
    End If
Next

Debug.Print i & " Message(s) were not sorted."

End Sub

Буду очень признателен за любую помощь!

Фил

1 Ответ

0 голосов
/ 15 мая 2018

oMailItem не установлен.Попробуйте установить oMailItem в вашем цикле:

For Each Item In olFolder.Items
    Serial = 0
    If TypeOf Item Is Outlook.MailItem Then
       Dim oMail As Outlook.MailItem: Set oMail = Item
...