在VBA中嵌入HTML文本以编写电子邮件正文

时间:2019-04-24 18:14:56

标签: excel vba

根据我的理解,我的代码当前正在以HTML格式将文本填充到电子邮件正文中。我试图用一个变量替换文本,所以在每次运行之前都不必编辑文本。当前在开头有一个名为Name的变量,该变量在电子邮件正文中填充了“ Hello Jim”,但我希望实际的正文从下一行开始,因此我不能只添加&另一个变量。该代码当前为:

                         StrTo:=Email, _
                         StrCC:="", _
                         StrBCC:=SDLEmail, _
                         StrSubject:=Email_Subject, _
                         Signature:=True, _
                         Send:=False, _
                         StrBody:="Hello " & Name & "," & _
                         *"<body> Here is the weekly update. Quotes are current through yesterday. " & _
                                  "<br><br>" & " </body>"*

,我要添加的变量是Email_Body

2 个答案:

答案 0 :(得分:2)

由于您没有显示完整的代码,我无法确定您的电子邮件通话是否正常。您的StrBody包含不必要的HTML <body>标记。如果称呼出现在电子邮件的正文中,则它也被视为正文的一部分。

假设您要使用两个变量NameEmail_Body。在致电之前定义那些。

Name = "Jim"
Email_Body = "Here is the weekly update. Quotes are current through yesterday."

如果您想轻松更改值,它们也可以放在一张纸上的单元格中。如果您有一个名为“ Control”的工作表,其中包含这些值,则可以按以下方式检索它们:

Name = ThisWorkbook.Sheets("Control").Range("A2").Value
Email_Body = ThisWorkbook.Sheets("Control").Range("B2").Value

在电子邮件命令中创建StrBody部分时,它应如下所示:

StrBody:="Hello " & Name & ",<br><br>" & Email_Body

<br>标签是换行符,因此您的文本将显示如下:

Hello Jim,

Here is the weekly update. Quotes are current through yesterday.

答案 1 :(得分:1)

您可以使用<br>

添加新行
StrBody:="<body>Hello " & Name & ",<br>" & _
         "Here is the weekly update. Quotes are current through yesterday. " & _
         "<br><br> </body>"*