为什么我没有从.SenderEmailAddress获取电子邮件地址?

时间:2015-07-27 21:54:35

标签: vba ms-word outlook

我正在尝试在Word表单中创建一个宏,它将表单另存为PDF,将其附加到电子邮件中,然后在修改提交者时将电子邮件发送到预定义的电子邮件地址,以便他们拥有表单的副本。

我有一切正常工作,但我不能为我的生活弄清楚如何让它抓住发件人的电子邮件地址。

这是宏:

Private Sub CommandButton21_Click()

Dim OL              As Object
Dim EmailItem       As Object

Application.ScreenUpdating = False
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
SubmitEmail = EmailItem.SenderEmailAddress


ActiveDocument.SaveAs2 FileName:="\\folder\folder\file.pdf", FileFormat:=wdFormatPDF


With EmailItem
    .Subject = "Completed Training Selection Form"
    .Body = "See Attached"
    .To = "submit@test.com"
    .CC = SubmitEmail
    .Attachments.Add "\\folder\folder\file.pdf"
    .Send
End With

Application.ScreenUpdating = True

MsgBox "Form submitted. Check your email for a copy of the form."

Set OL = Nothing
Set EmailItem = Nothing

End Sub

宏工作,但它不会CC任何人。我已经尝试了很多不同的方法来抓取发件人地址,从而将代码移动到一直踩到帐户对象。

我已将SubmitEmail添加到正文消息中以确认其为空白。还有什么我需要做的,因为它是一个Word宏,而EmailItem是一个Outlook对象吗?计算机/网络权限会影响它吗?电子邮件从发件人的帐户中发送得很好,但我现在完全失去了。

编辑:我甚至完成了.CC = .SenderEmailAddress,但仍然没有。

1 个答案:

答案 0 :(得分:0)

您正在添加刚刚创建的邮件的发件人电子邮件地址,当然SenderEmailAddress将是""因为邮件从未提交过。

它应该是当前用户的地址吗?试试Application.Session.CurrentUser.Address