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

Why am I not getting an email address from .SenderEmailAddress?

我正在尝试在 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

宏有效,但不抄送任何人。我已经尝试了很多不同的方法来获取发件人地址,从四处移动代码到一直回到帐户对象。

我已将 SubmitEmail 添加到邮件正文以确认它是空白的。因为它是一个 Word 宏而 EmailItem 是一个 Outlook 对象,我还需要做些什么吗? computer/network 权限会影响它吗?电子邮件从发件人的帐户发送得很好,但我现在完全不知所措。

编辑: 我什至完成了 .CC = .SenderEmailAddress 但仍然一无所获。

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

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