You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel宏发送邮件触发Runtime Error 287问题求助

解决Excel VBA发送邮件时的Runtime Error 287问题

Runtime Error 287通常由权限限制、Outlook安全拦截或代码常量未定义导致,以下是针对性解决步骤:

1. 修正代码中的未定义常量

你采用后期绑定创建Outlook对象,此时olMailItem常量无法被自动识别,需替换为对应数值0(Outlook中olMailItem的默认值即为0)。修改后的代码如下:

Sub Send_Email()
    Dim MyOutlook As Object
    Set MyOutlook = CreateObject("Outlook.Application")

    Dim MyMail As Object
    ' 替换olMailItem为数值0,规避常量未定义问题
    Set MyMail = MyOutlook.CreateItem(0)

    MyMail.To = "notlistedpublicly"
    MyMail.Subject = Range("B6") & "Has completed his Skills Matrix"
    MyMail.Body = Range("B6") & "has completed his Skills Matrix. Please review"

    ' 若自动发送被拦截,可切换为显示邮件手动发送
    ' MyMail.Display
    MyMail.Send
End Sub

2. 调整Outlook安全设置

Outlook默认拦截程序自动发送邮件,可通过两种方式处理:

  • 临时方案:将代码中的MyMail.Send替换为MyMail.Display,邮件窗口会弹出,手动点击发送即可绕过拦截。
  • 永久方案:打开Outlook「文件」→「选项」→「信任中心」→「信任中心设置」→「程序访问」,勾选「从不警告我可疑活动」(注意此设置会降低安全性,按需选择);或把Excel添加到信任应用列表。

3. 确认Excel宏权限

确保Excel允许运行宏:打开Excel「文件」→「选项」→「信任中心」→「信任中心设置」→「宏设置」,选择「启用所有宏」(仅在信任的文件中使用此设置,避免安全风险)。

内容的提问来源于stack exchange,提问作者Paul C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:45:45