我的数据设置如下:
-在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个名称,因此手动操作会很麻烦...
谢谢大家。
答案 0 :(得分:1)
尝试替换
.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>