我有一个数据列表,其中包含存储在excel工作表上的各种条目详细信息(按,日期,金额等)。我正在尝试自动支持那些首先输入条目的人。
我要编写的宏的目标是:
这是我必须要做的:
Sub SendMail()
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
Set olMail = olApp.CreateItem(olMailItem)
With olMail
.Subject = "Automatic Entry Support"
.Recipients.Add "J.Doe@gmail.com"
.Attachments.Add "C:\Users\J.Doe\Documents\Project\Template draft.xlsx"
.Body = "Support message"
.Display ("Spell check, data attached?, SEND")
End With
If Not blRunning Then olApp.Quit
Set olApp = Nothing
Set olMail = Nothing
End Sub
(在代码中有几行用“假”行放置,不显示任何重要内容)。
此外,这是我在该网站上的第一篇文章,因此,如果我提出的问题格式不正确,请发表评论。
更新:尝试运行代码时,我也收到错误消息:“运行时错误'-2147024894(8007002):自动化错误”
答案 0 :(得分:0)
.Body = "Support message"
您可以在设置邮件正文之前尝试设置BodyFormat
。
您很可能已经在Outlook中遇到了安全问题。在本文中,“安全性”是指所谓的“对象模型防护”,它触发安全提示并阻止对某些功能的访问,以防止恶意程序从Outlook数据中获取电子邮件地址并使用Outlook传播病毒和垃圾邮件。
可能的解决方法是:
Globals.ThisAddin.Application
对象。在Outlook "Object Model Guard" Security Issues for Developers文章中详细了解可能的选项。