You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA发送邮件时字体大小与代码指定不符问题排查

问题原因及解决办法

你的代码里用<font>标签指定字体大小时写法错误。HTML的<font>标签的size属性不支持带pt的单位,它只能接受1到7的数字(1最小,7最大)。你写size="11pt"这种格式,Outlook会识别为无效值,直接 fallback 到默认的超大字号(也就是你看到的36pt)。

要正确设置字号,得改用CSS的font-size属性,把样式写在style属性里,而非<font>的size属性。修改后的代码如下:

Sub SendEmail(Body as String, EmailTo as String, EmailCC as String, EmailSubject as String, Message as String, Title as String)
Dim EmailApp As Outlook.Application
Set EmailApp = New Outlook.Application

Dim Email As Outlook.MailItem

' 用style属性指定完整字体样式,包括正确的字号单位
Body = "<span style=""font-family:Calibri; font-size:11pt; color:#000000"">" & Message & "</span>"
Signature = "<span style=""font-family:Arial; font-size:11pt; color:#808080"">Kind regards<br><br></span>" & _
            "<span style=""font-family:Arial; font-size:10pt; color:#808080"">" & Title & "</span>"

Set Email = EmailApp.CreateItem(olMailItem)
Email.To = EmailTo
Email.CC = EmailCC
Email.Subject = EmailSubject
Email.HTMLBody = Body & "<br><br>" & Signature ' HTML中用<br>实现换行,vbNewLine无效
Email.Send
End Sub

额外补充两点:

  • 原代码里的vbNewLine在HTML邮件中不会生效,必须换成<br>标签来实现换行
  • <font>标签属于已废弃的HTML标签,用<span>配合style属性更符合现代规范

内容的提问来源于stack exchange,提问作者Jens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:01:19