.send不工作vba但.display是

时间:2017-01-18 16:24:22

标签: excel vba excel-vba sendmail

我的“.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

3 个答案:

答案 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设置为必须在发送电子邮件之前选择其中一个选项,可能是出错的原因。除了停用要求您在发送电子邮件之前标记电子邮件的插件之外,我还没有解决此问题的许多解决方案。但也许其他人可能有其他建议。