我有一个用于创建电子邮件的宏,当它添加签名时,它还会在其前面添加3行间距(在打开新电子邮件时为默认)。 我尝试了各种替换和修整解决方案,但没有用。代码的相关部分是这样的:
Set objEmail = app_Outlook.CreateItem(olMailItem)
Dim signature As String
strSalutation = "<html><head></head><body>" & sGreeting & " " & Sheets("Tabelle2").Cells(i, 5) & "," & "</body></html>"
objEmail.SentOnBehalfOfName = "address@mail.com"
objEmail.Display
objEmail.To = sEmail_Address
objEmail.Subject = sTitle
sSignature = Replace(objEmail.HTMLBody, Chr(13), "")
objEmail.HTMLBody = strSalutation & "<p>" & sTemplate & objEmail.HTMLBody
也许值得一提的是,我需要在任何人的笔记本电脑上工作,而不仅仅是用我的签名。
答案 0 :(得分:0)
在上面的示例代码中:
trSalutation = "<html><head></head><body>" & sGreeting & " " & Sheets("Tabelle2").Cells(i, 5) & "," & "</body></html>"
...
objEmail.HTMLBody = strSalutation & "<p>" & sTemplate & objEmail.HTMLBody
在关闭</html>
标签之后,您添加了一个新的HTML元素。
相反,您需要将称呼内容粘贴到<body>
和</body>
元素中。结果,您将获得格式正确的HTML字符串。
答案 1 :(得分:0)
您可以使用样式删除边距,如下所示:
"<html><head><style>p{margin-top:0;margin-bottom:0;}</style></head><body>"
答案 2 :(得分:0)
您可以尝试以下方法:
sSignature = Replace(objEmail.HTMLBody, "<p class=MsoNormal><o:p> </o:p></p>", "")