MS Outlook更改所有草稿的主题行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MS Outlook更改所有草稿的主题行相关的知识,希望对你有一定的参考价值。

我需要在草稿中更改1000个电子邮件的主题行。

这是我正在使用的代码,但它没有改变主题。有人可以让我知道我错过了什么。

Sub Drafts_Send()

Dim objDrafts As Outlook.Items
Dim objDraft As Object
Dim strPrompt As String
Dim nResponse As Integer
Dim i As Long

Set objDrafts = Outlook.Application.Session.GetDefaultFolder(olFolderDrafts).Items

For i = objDrafts.Count To 1 Step -1
    If objDrafts.Item(i).Subject = "Please Thank You" Then
        objDrafts.Item(i).Subject = "Please & Thank You"
        objDrafts.Item(i).Save
    End If
Next i

Set objDrafts = Nothing

End Sub
答案

我的猜测是默认的草稿文件夹不是包含您要更新的草稿的文件夹。

运行此宏:

Sub DsplStoreContainingfDefaultDrafts()

  Dim NS As Outlook.NameSpace
  Dim DefaultInboxFldr As MAPIFolder

  Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI")
  Set DefaultInboxFldr = NS.GetDefaultFolder(olFolderDrafts)

  Debug.Print "Default Drafts folder in """ & DefaultInboxFldr.Parent.Name & """"

End Sub

在我的系统上输出:

Default Drafts folder in "Outlook Data File"

“Outlook数据文件”是安装附带的默认存储,但它仅用于与电子邮件帐户无关的信息。 Outlook为我的每个电子邮件帐户创建了一个单独的商店,其名称为JohnSmith@AcmeIsp.com和JohnSmith@gmail.com。每个商店都有自己的草稿文件夹,草稿在我将发送电子邮件的帐户的草稿文件夹中。

转到包含您要更新的草稿的文件夹。它是在我的宏标识的商店内吗?如果不继续阅读。

复杂的是,在我的系统上,Drafts是我常规ISP帐户的商店中的顶级文件夹,但是我的gmail帐户的文件夹中的第二级文件夹。

你需要更换:

Set objDrafts = Outlook.Application.Session.GetDefaultFolder(olFolderDrafts).Items

Outlook.Application.是多余的,因为你在Outlook中运行它。

如果您的商店就像我的常规ISP帐户,您将需要以下内容:

Set objDrafts = Session.Folders("JohnSmith@AcmeIsp.com").Folders("Drafts").Items

如果您的商店就像我的Gmail帐户,您将需要以下内容:

Set objDrafts = Session.Folders("JohnSmith@gmail.com").Folders("[Gmail]").Folders("Drafts").Items

以上是关于MS Outlook更改所有草稿的主题行的主要内容,如果未能解决你的问题,请参考以下文章

如何将Outlook发送的电子邮件唯一匹配到其对应的Outlook草稿(MAPI MailItem)

我应该如何使用 Outlook 发送代码片段?

Outlook 收到新电子邮件后,触发器未在主题行上触发

使用C#回复/回复所有特定的Outlook邮件

如何使用 VBA 识别 MS Outlook 中的日历条目?

Swift 4 - UIActivityViewController 共享到 Outlook 主题和标题