我正在Excel中创建一封电子邮件。电子邮件创建后,我需要在顶部添加一两条评论。我已经弄清楚如何设置字体样式,但Outlook在Carriage Return上添加了一个双线空间,我真的不想要。我怎么能改变这个?
以下代码:
Sub CreateDailyEmail()
Dim oApp As Object
Dim oMail As Object
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(0)
With oMail
.To = Range("EMAIL_TO")
.Cc = Range("EMAIL_CC")
.Subject = Range("EMAIL_SUBJECT")
.Attachments.Add (Range("PATH"))
.HTMLBody = "<p style=""font-family: Calibri; font-size: 14px; color: #00f; line-height: 1;""><br /></p>" & RangetoHTML(ActiveWorkbook.Worksheets("Daily").Range("B6:H65"))
.Display
End With
Set oMail = Nothing
Set oApp = Nothing
End Sub
答案 0 :(得分:2)
看起来您正在使用优秀的Ron De Bruin代码从Excel发送和发送电子邮件(因此使用RangetoHTML()公式)。
我一直在使用同一段代码,可以在http://www.rondebruin.nl/win/s1/outlook/mail.htm
找到不使用.HTMLBody中的段落HTML标记,而是使用body标签并将行高设置为1.然后当RangetoHTML返回您想要的范围时,它将只与单个空间中的任何文本分开! 这使得代码....
private Plugin plugin;
public InventoryClassName(Plugin plugin){
this.plugin = plugin;
}
答案 1 :(得分:0)
我不完全确定我理解你在问什么,因为我不确定回车单中的单元格中是否发生了回车,或者只是在Outlook中的html中,但我脑子里有两种方法: / p>
您可以替换单元格中的回车符和换行符(http://stackoverflow.com/questions/2321078/how-can-i-remove-blank-line-breaks-from-an-excel-cell-with -VB-或-A-式 )处理间距问题,例如
Substitute(Substitute(A1, CHAR(10), ""), CHAR(13), "")
如果它出现在你的文档的html部分,那么这是一个特定于Outlook的问题,因为使用你的设置的html示例工作正常:
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="A Jack Orange
Lantern Example" />
<style type="text/css">
p
{
font-family: "Calibri";
font-size: 20px;
color: #00f;
line-height: 1;
}
</style>
</head>
<title> What's Up? </title>
<body>
<p> This is totally a paragraph </p>
<p> this is totally a paragraph <br /> + a line
break </p>
<p> this is totally a paragraph with a line break
afterwards <br /> </p>
<p> Totally... yeah. <br /> </p>
</body>
</html>
对于outlook,您应该能够使用Replace函数替换回车:
stringNewText = Replace(stringOldText, vbCr, "")
或者,可能:
stringNewText = Replace(stringOldText, vbCr, <br>)
或者,或者:
stringNewText = Replace(stringOldText, vbCr, vbCrLf)
MSDN文档直接解决了Microsoft使用项目主体的教程中的替换功能:http://msdn.microsoft.com/en-us/library/office/dd492012(v=office.12).aspx
vbaexpress的教程似乎至少在外围解决了这个问题,并可能提供进一步的说明:http://www.vbaexpress.com/forum/showthread.php?t=39348