【发布时间】:2020-11-29 17:06:23
【问题描述】:
我在 Excel VBA 中遇到了一个代码,它根据代码中的给定时间范围通过 Outlook 发送邮件。 “收件人、抄送、主题和邮件正文”都只能在excel中输入。
代码工作正常,但.Send 给出错误287-Application or object defined error。该代码在我同事的笔记本电脑上运行良好,所以我猜这是我的 Outlook 或 excel 中的一些设置错误。我在执行代码时保持我的前景开放。代码写在下面。谁能指出可能出了什么问题?
Sub Send_Email()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet1")
'''''''''' Update Next ''''''''''''''
Call Update_Next_Schedule_Time
Application.OnTime sh.Range("K20").Value, "Send_Email"
''''''''''''''''''''''''''''''''''''''
Dim oa As Object
Dim msg As Object
Set oa = CreateObject("outlook.application")
Set msg = oa.createitem(0)
With msg
.To = sh.Range("C2").Value
.CC = sh.Range("C4").Value
.Subject = sh.Range("C6").Value
.Body = sh.Range("C8").Value
.display
.send
End With
End Sub
【问题讨论】:
-
如果在
.display和.send之间输入Doevents会发生什么? -
Outlook 会打开草稿邮件,但不会自动发送。
-
你做了我上面提到的吗?如果是,您是否遇到任何错误?
-
我做了 Doevents,它准备了我的邮件,即它是在 Outlook 中起草的。但未发送,这意味着我需要单击发送按钮。但是,代码已经说“.send”,不幸的是抛出错误。