程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

VBA Excel 电子邮件格式问题

发布于2023-11-12 14:14     阅读(1193)     评论(0)     点赞(0)     收藏(2)


我的数据设置如下:

-在 Excel 上,我有一个工作表“Test1”,其中包含我想要向其发送电子邮件的人员列表。像这样;

No.    Version  Company  Name    Email
 1       R         x     Max     max@abc.com
 2       E         y     Bill    bill@abc.com
 3       C         z     Scott   scott@abc.com

我要发送的电子邮件因类型而略有不同。我当前的代码如下:

Sub mailTest()

Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem

For i = 2 To 3

   Set olApp = New Outlook.Application
   Set olMail = olApp.CreateItem(olMailItem)

    mailBody = Worksheets("BODY").Cells(1, 1).Value & Worksheets("Test1").Cells(i, 4) _
 & Worksheets("BODY").Cells(2, 1).Value



   With olMail
       .To = Worksheets("Test1").Cells(i, 5).Value
       .Subject = Worksheets("Test1").Cells(i, 3).Value
       .HTMLBody = mailBody
       .Display

End With


   Set olMail = Nothing
   Set olApp = Nothing

Next



End Sub

上面的代码显示电子邮件,因为主体位于工作表“BODY”的单元格 A2 中。“Hello”存储在单元格 A1 中,并且也显示得很好,因为我在这两个单元格中都进行了 HTML 编码,将字体设置为 Calibri,将大小设置为 3。

问题是当我使用代码从第 4 列的工作表 Test1 中提取人员姓名时;

 & Worksheets("Test1").Cells(i, 4)

它以不同的字体显示,默认为 Times New Roman。我剩下的就是 Calibri 中显示的所有内容,只有他们的名字被拉到 Times New Roman 中。

有没有办法解决这个问题,而无需在每个名称单元格中添加 HTML 代码?我正在处理的实际文件有大约 500 个名称,所以手动执行会很痛苦......

感谢大家。


解决方案


尝试更换

.HTMLBody = mailBody

.HTMLBody = "<!DOCTYPE html><html><head><style>"
.HTMLBody = .HTMLBody & "body{font-family: Calibri, ""Times New Roman"", sans-serif}"
.HTMLBody = .HTMLBody & "</style></head><body>"    
.HTMLBody = .HTMLBody & mailBody & "</body></html>



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/531808/c9ebbd231ea109d662c5/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)