【发布时间】:2016-05-31 19:38:10
【问题描述】:
所以我需要一些帮助。我正在尝试更新我公司用于管理客户的 Excel 工具。我目前需要有关更新该工具的发送电子邮件功能的帮助。所以员工会有一个他们需要发送电子邮件的客户列表,每个客户都有特定的信息,如姓名、客户编号等,员工应该能够点击内置的“发送电子邮件”宏按钮,并且不同的电子邮件将在 Outlook 中填充,其中包含内置于电子邮件收件人、标题和正文中的每个客户端的特定信息。
我目前卡住了。例如,我将选择 3 个客户发送电子邮件,单击“发送电子邮件”按钮,我将收到 3 封电子邮件来填充(我应该这样做)。第一封电子邮件将在正确的位置为客户 #1 提供所有正确的信息。但是,电子邮件 #2 将具有正确的电子邮件收件人和电子邮件标题,但随后电子邮件正文将具有客户 #2 的正确信息,并且在电子邮件正文中的下方也将是客户 #1 的所有电子邮件正文信息.与电子邮件 #3 相同,它将具有正确的收件人和标题,但正文将包含客户端 #3、客户端 #2 和客户端 #1 的正文信息。
所以我知道我需要通过电子邮件正文的某种循环来修复它,但我一直在研究这个问题很长时间,我再也看不到它了。我已删除所有敏感信息并添加了占位符,但我认为您应该明白这一点。
如果您有任何问题,请告诉我。
Sub SendEMail()
Dim Email As String
Dim Subj As String
Dim Msg As String
Dim URL As String
Dim r As Integer
Dim x As Double
Dim OApp As Object
Dim OMail As Variant
Dim Signature As String
Dim strbody As String
strbody = "<html><body>"
With Sheets("Email").Select
lastrow = Cells(Rows.Count, "B").End(xlUp).Row
End With
For r = 2 To lastrow
Set OApp = CreateObject("Outlook.Application")
Set OMail = OApp.CreateItem(0)
' Get the email address
Sheets("Email").Select
Email = Cells(r, "F")
' Message subject
Sheets("Email").Select
Subj = "Renewal for " & Cells(r, "B").Text & " Contract " & Cells(r, "A").Text & " Effective " & Cells(r, "C").Text
' Message body
Sheets("Email").Select
strbody = strbody & "Dear " & Cells(r, "AR").Text & ", <br><br>" & _
"I will be working with you on " & Cells(r, "B") & ", client number " & Cells(r, "A") & ", which is effective " & Cells(r, "C") & ".<br><br>" & _
"For this year's contract, we are requesting the following information: <br>" & _
"<li>" & Cells(r, "AH") & "</li>" & "<br><br>" & _
"The application form may be downloaded from:<br>" & _
"<li>Option #1</li>: " & "<a href=""" & "Link#1" & """>" & "Link#1" & "</a>" & "<br>" & _
"<li>Option #2</li>: " & "<a href=""" & "link#2" & """>" & "link#2" & "</a>" & "<br><br>" & _
"Once we receive the requested information, you will receive your contract within 5 business days. Should you have any questions, please don't hesitate to contact me at this email address or phone number <br><br>" & _
"As always, we would like to thank you for your business. <br><br>" & _
"Regards, <br>"
On Error Resume Next
Sheets("Email").Select
With OMail
.Display
.To = Email
.Subject = Subj
.HTMLBody = strbody & vbNewLine & .HTMLBody
End With
Next r
On Error GoTo 0
Set OMail = Nothing
Set OApp = Nothing
End Sub
【问题讨论】: