我正在尝试编写VBA代码,该代码会将默认Outlook签名插入在Excel中生成的电子邮件中。有一些人可能会使用Excel模板,因此我需要VBA代码来挑选正在创建电子邮件的用户的默认签名。
我在网上找到了很多有用的东西,但是我无法使它起作用。我是VBA的新手,所以仍然在学习。
以下代码适用于我需要的电子邮件-期望签名,因为我删除了所有代码,因为我无法正常工作。
任何帮助将不胜感激。
Sub EmailCreator()
ActiveWorkbook.Save
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
Dim blRunning As Boolean
blRunning = True
On Error Resume Next
Set olApp = GetObject(, "Outlook.Application")
If olApp Is Nothing Then
Set olApp = New Outlook.Application
blRunning = False
End If
On Error GoTo 0
strBody = "This is my message in HTML format"
Set olMail = olApp.CreateItem(olMailItem)
With olMail
.Subject = "abc"
.Attachments.Add ActiveWorkbook.FullName
.HTMLBody = strBody
.Display
End With
If Not blRunning Then olApp.Quit
Set olApp = Nothing
Set olMail = Nothing
End Sub
答案 0 :(得分:1)
首先,当您致电Display
如果邮件正文尚未修改时,Outlook将插入默认签名。
第二,一旦调用Display
(并且消息主体中填充了签名),您将需要合并两个HTML字符串-不仅是设置HTMLBody
属性(这会消灭它)签名),而不是将两个HTML字符串(无法产生有效的HTML文档)串联在一起,而是合并。最简单的方法是查找“ <body
”子字符串的位置,滚动到下一个“ >
”字符(以照顾带有属性的body标签),然后在那之后插入HTML “ >
”字符。