【问题标题】:How to save selected item in Outlook VBA如何在 Outlook VBA 中保存所选项目
【发布时间】:2020-06-25 16:04:04
【问题描述】:

我想将所选项目保存在 Outlook 中。使用下面的代码,我可以保存该项目,但它只保存第一项而不是选定的项目。

为了保存所选项目,我需要更改哪些内容?

Dim oOlApp As Object, objNmSpc As Object, ofldr As Object
Dim myCopiedItem As Outlook.MailItem
Dim myNewFolder  As String

Set oOlApp = GetObject(, "Outlook.Application")
If Err.Number <> 0 Then
    Set oOlApp = CreateObject("Outlook.Application")
End If
Err.Clear

Set objNmSpc = oOlApp.GetNamespace("MAPI")
Set ofldr = objNmSpc.PickFolder
If Not ofldr Is Nothing Then MsgBox ofldr

Dim oItem As Object
For Each oItem In ofldr.Items
    If oOlApp.ActiveExplorer.Selection.Item(1) = True Then
        oItem.SaveAs Sheet1.Range("V5").Value & oItem.Subject & ".msg", olMSG
        match.Offset(, 7).Value = oItem.SenderName & "-" & oItem.Subject & "-" & oItem.ReceivedTime
        match.Offset(, 8).Value = VBA.Environ("Username") & "- " & VBA.Now
        Exit Sub
    End If
Next oItem

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    如果没有错误,以下行将无法运行

    If oOlApp.ActiveExplorer.Selection.Item(1) = True Then
    

    另外,您正在调用Exit sub,这意味着只能处理一项。

    绝对没有理由遍历文件夹中的所有项目。将循环更改为以下

    For Each oItem In oOlApp.ActiveExplorer.Selection
            oItem.SaveAs Sheet1.Range("V5").Value & oItem.Subject & ".msg", olMSG
            match.Offset(, 7).Value = oItem.SenderName & "-" & oItem.Subject & "-" & oItem.ReceivedTime
            match.Offset(, 8).Value = VBA.Environ("Username") & "- " & VBA.Now
    Next oItem
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 2014-07-23
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      相关资源
      最近更新 更多