我的“.send”无效但我的“.display”是?我一直得到一个对象定义的错误。当我调试它时突出显示“.send”。有什么建议吗?
Sub SendEmails()
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
For i = 8 To 10
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
With olMail
.BCC = Cells(i, 1).Value
.Subject = Cells(i, 2).Value
.Body = "Hello " & Cells(i, 3).Value & "," & vbNewLine & vbNewLine & Cells(i, 4).Value & vbNewLine & vbNewLine & Cells(i, 5).Value & vbNewLine & Cells(i, 6).Value
.Attachments.Add "H:\Shared\Public\Focus 6\Private Equity\Send Emails\2017-01-18\EY - Capitalizing on Opportunities (PE O&G).pdf"
.Send
End With
Next
Set olMail = Nothing
Set olApp = Nothing
End Sub
答案 0 :(得分:1)
正如@Nathan_Sav所提到的,您可以使用Outlook安全功能。作为替代方案,您可以尝试使用.SendKeys
函数...但请注意,这不是一种非常可靠的方法,特别是如果您需要其他人/其他计算机来尝试使用此宏。 / p>
但如果你更换
.Send
使用
.SendKeys "%S"
它可能适合你。
答案 1 :(得分:0)
.Display
会为您提供电子邮件的视图。如果此步骤有效,则.Send
将有效运行。使用.Send
时,您将收到一个消息框,确认第三方程序正在尝试访问Outlook(如果一切配置正确)。要解决此问题(如果未配置),请打开工作簿,然后打开VBE(Alt + F11)。从那里转到工具 - >引用并取消选中任何标记为“丢失”的内容。如果可能,请查找相应的Outlook对象库并进行检查。
Sub SendEmails()
Dim olApp As Outlook.Application
Dim olMail As Outlook.MailItem
For i = 8 To 10
Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)
With olMail
.BCC = Cells(i, 1).Value
.Subject = Cells(i, 2).Value
.Body = "Hello " & Cells(i, 3).Value & "," & vbNewLine & vbNewLine & Cells(i, 4).Value & vbNewLine & vbNewLine & Cells(i, 5).Value & vbNewLine & Cells(i, 6).Value
.Attachments.Add "H:\Shared\Public\Focus 6\Private Equity\Send Emails\2017-01-18\EY - Capitalizing on Opportunities (PE O&G).pdf"
.Display
End With
Next
Set olMail = Nothing
Set olApp = Nothing
End Sub
答案 2 :(得分:0)
大多数组织电子邮件都有强制性的文档/电子邮件标签政策,您必须在公共,限制,保密等选项之间进行选择。如果您的Outlook设置为必须在发送电子邮件之前选择其中一个选项,可能是出错的原因。除了停用要求您在发送电子邮件之前标记电子邮件的插件之外,我还没有解决此问题的许多解决方案。但也许其他人可能有其他建议。