我正在尝试使用Excel VBA发送和发送电子邮件和附件(如excel工作表)。我还希望附件是动态的,包括每个收件人的电子邮件地址。目前我有以下代码:
For i = 1 To ecount
Excel.Range("current").Value = i
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
name = Application.WorksheetFunction.Index(Sheet1.Range("B5:b11"), i)
Excel.Range("interviewer").Value = name
Worksheets(2).Calculate
With OutMail
.to = name
.CC = ""
.BCC = ""
.Subject = "Talent Scorecard"
.HTMLBody = ebody
.Attachments.Add ActiveWorkbook.FullName
.Send
End With
Next i
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
我的名称变量包含每个收件人的电子邮件地址。我试图通过使用新名称值更新工作表中包含的访问者范围来更新For循环的每次迭代的名称。问题是即使我使用新的电子邮件地址成功更新工作表,所有电子邮件附件都包含我列表中第一个收件人的名称。我几乎得到的印象是我的代码永远不会更新附件。
有没有人对我出错的地方或任何想法有任何经验。谢谢你的帮助。