.发送不工作的vba,但.显示为
我的“.send”不工作,但我的“.display”工作?我一直得到一个对象定义的错误。当我调试时,它突出显示“.send”。有什么建议吗.发送不工作的vba,但.显示为,vba,excel,sendmail,Vba,Excel,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(olMailI
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
正如@Nathan_Sav所提到的,您可能可以使用Outlook的安全功能。作为替代方案,您可以尝试使用
.SendKeys
函数……但请注意,这不是一种非常可靠的方法,尤其是当您需要其他人/其他机器尝试使用此宏时
但是如果你替换
.Send
与
它可能适合您。
.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
大多数组织电子邮件都有一个强制性的文档/电子邮件标签策略,您必须在公共、限制、机密等选项之间进行选择。如果outlook设置为在发送电子邮件之前必须选择其中一个选项,则这可能是出错的原因。对于这个问题,我所知道的解决方案并不多,除了停用需要在发送电子邮件之前为其添加标签的插件。但可能其他人有其他建议。您可能会在outlook中收到有关访问outlook的警告。谢谢,但你的建议似乎仍然不起作用。我收到以下错误消息:运行时错误'287:应用程序定义的或对象定义的错误。谢谢-为我提供了发现电子邮件进入我的垃圾邮件文件夹所需的线索。(谁知道我给我的电子邮件会被发送到垃圾邮件文件夹-arghhh。)系统锁定时,SendKeys“%S”不起作用。解决方法是将电子邮件保存到电子邮件文件夹中。在文件夹的add_item事件中,写入代码以发送它。因此,当项目添加到该文件夹时,该项目将自动发送
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