我正在尝试在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,但仍然没有。
答案 0 :(得分:0)
您正在添加刚刚创建的邮件的发件人电子邮件地址,当然SenderEmailAddress将是""因为邮件从未提交过。
它应该是当前用户的地址吗?试试Application.Session.CurrentUser.Address
。