如何更改 Excel VBA 生成的 HTML 电子邮件中的文本颜色

问题描述 投票:0回答:1

我正在尝试编写生成 HTML 电子邮件正文的 VBA 代码。一切都按预期工作,除了当我尝试更改签名文本的颜色时,与需要黑色的正文相比,签名文本的颜色需要采用公司颜色。

我已将代码精简到演示该问题所需的最低限度。当我运行它时,它会生成电子邮件,并且文本正确,但颜色错误。

Sub Send_Email_Main_TEST()

    Dim OutApp As Object
    Dim OutMail

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    
    On Error Resume Next
    With OutMail
        .Subject = "TEST"
        .HTMLBody = "<sig style='font-size:10.0pt;color:blue;'><b>NAME | TITLE | DEPT | COMPANY</b><br>Tel Int: | Tel Ext: | Email: <sig>"
        .Display
    End With
    On Error GoTo 0
    
    Set OutMail = Nothing
    Set OutApp = Nothing
    
End Sub

这会产生一封如下所示的电子邮件,带有黑色文本

但是,当我运行 HTML 时

<sig style='font-size:10.0pt;color:blue;'><b>NAME | TITLE | DEPT | COMPANY</b><br>Tel Int: | Tel Ext: | Email: <sig>

www.W3Schools.com上,文字显示为蓝色,如下:

据我所知,HTML 没有任何问题,并且正如我已经说过的,VBA 在所有其他方面都有效。

excel vba outlook html-email
1个回答
2
投票

无论出于何种原因,样式都不会应用于

sig
标签。将
sig
标签的文本内容包装在另一个元素中并将样式应用到内部元素将修复格式。

.HTMLBody = "<sig><b><span style='font-size:10.0pt;color:blue;'>NAME | TITLE | DEPT | COMPANY</span></b><br>Tel Int: | Tel Ext: | Email: <sig>"

© www.soinside.com 2019 - 2024. All rights reserved.