使用 Visual Basic 的 Outlook 中的附件和电子邮件主题

Attachment and Email subject in Outlook using visual basic

我试图在 Outlook 中制作一封带附件的标准电子邮件。 但结果并不完全如我所料。 我收到两封电子邮件。 一封邮件包含附件,另一封邮件包含主题。

Sub button()

Dim myAttachments As Outlook.Attachments

Set myItem = Application.CreateItem(olMailItem)
Set myAttachments = myItem.Attachments
myAttachments.Add "C:\Users\User\AppData\Roaming\Microsoft\Test.pdf", _
olByValue, 1, "Test"
myItem.Display

Dim oMail As Outlook.mailItem
Dim Item As Outlook.mailItem

Set Item = Application.ActiveExplorer.Selection(1)
Set oMail = Application.ActiveExplorer.Selection(1).Reply
Strbody = "HTML"

With oMail
.HTMLBody = Strbody
   .CC = ""
   .BCC = ""
   .Subject = "subject"
   .Display
 End With
End Sub

我想将这些电子邮件合并在一起。 提前谢谢你。

您正在创建一封带附件的新电子邮件,稍后回复现有的电子邮件会创建两封邮件,试试这个:

Sub button()

    With Application.ActiveExplorer.Selection(1).Reply
        .HTMLBody = "HTML"
        .CC = ""
        .BCC = ""
        .Subject = "subject"
        .Attachments.Add "C:\Users\User\AppData\Roaming\Microsoft\Test.pdf", olByValue, 1, "Test"
        .Display
    End With

End Sub

在代码中,您创建了一个新邮件项目和对现有项目的回复。相反,您需要创建一个回复并在其中附加一个文件:

Dim myAttachments As Outlook.Attachments
Dim oMail As Outlook.mailItem
Dim Item As Outlook.mailItem

Set Item = Application.ActiveExplorer.Selection(1)
Set oMail = Application.ActiveExplorer.Selection(1).Reply
Strbody = "HTML"

With oMail
  .To = "sadasdasd@sdfsdgfgdfg.com"
  .HTMLBody = Strbody
  .Subject = "subject"
End With

Set myAttachments = oMail.Attachments
myAttachments.Add "C:\Users\User\AppData\Roaming\Microsoft\Test.pdf", _
   olByValue, 1, "Test"
oMail.Display