Outlook VBA:如何在HTML邮件正文同一行拼接字符串变量
解决VBA HTML邮件变量与文本同行显示问题
问题核心
你遇到的两个问题根源:
- 直接在字符串里写
&str,VBA会把它当作普通文本输出,不会解析成变量的实际值; - HTML的
<p>是块级元素,闭合</p>后浏览器会自动换行,所以把str放在</p>之后会被渲染到下一行。
解决方案
把变量str嵌入到<p>标签内部,保持在同一个块级元素中,同时用VBA的字符串连接符&正确拼接变量与HTML文本。
修改后的完整代码
Sub Send_Email() Dim objOutlookApp As New Outlook.Application Dim myEmail As Outlook.MailItem Set myEmail = objOutlookApp.CreateItem(olMailItem) myEmail.BodyFormat = olFormatHTML myEmail.Display Dim str As String: str = "My Text" Dim Strbody As String Dim Style As String: Style = "<p style=font-size:12.5pt;font-family:Georgia>" ' 将str嵌入到<p>标签内部,确保同行显示 Dim Line1 As String: Line1 = "   Attached file contains " & str & "</p>" Strbody = Style & Line1 myEmail.HTMLBody = Strbody & myEmail.HTMLBody End Sub
关键改动说明
- 调整变量位置:把
str放在<p>标签的内容末尾再闭合标签,所有内容属于同一个<p>块级元素,不会触发自动换行; - 正确拼接变量:用
&连接字符串片段和变量,VBA会自动替换变量为实际值,而非输出&str文本。
内容的提问来源于stack exchange,提问作者Peace
相关产品推荐
相关产品推荐

