代码之家  ›  专栏  ›  技术社区  ›  Philip Day

按主题另存为邮件项目

  •  0
  • Philip Day  · 技术社区  · 6 年前

    我正在尝试使用主题行中的第一个字符将邮件另存为计算机上的不同文件夹。

    线路:

    Case oMail.Subject Like "TEST1*"
    

    引发错误:

    “未设置对象变量或With Block变量”

    下面是改写后的脚本:

    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 回复  |  直到 6 年前
        1
  •  1
  •   L0uis    6 年前

    未设置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