首页 > 解决方案 > 添加位置和密件抄送/资源 - 不更新位置

问题描述

我在 Excel 中编写了一个宏来通过 Outlook 发送日历邀请(约会)。收件人必须是密件抄送(添加到资源字段)。

我在日历约会的正文中有文本。看来,通过将 WordEditor 与密件抄送/资源结合使用,我在每次发送之前都会弹出一个警报:“您要将位置更新为...吗?”
在此处输入图像描述

我不想更新/更改位置,因为它将被收件人列表替换,从而破坏了密件抄送的原因(收件人会将位置视为整个收件人列表)。

如果我删除将文本添加到正文的代码块(以“Set ActInsp ...”开头),则不会出现此警报,并且其他一切正常;但是,我需要带有超链接的文本正文

如何手动复制“更新位置”警报的 gif。
在此处输入图像描述

下面是宏的工作示例。带有 WordEditor 的代码块出现在底部,正上方.Display.

请务必添加参考:Microsoft Outlook 16.0 对象库(我未能使后期绑定工作)。

Sub SendAppointments_SingleEmail()

Dim olApp As Object
Set olApp = CreateObject("Outlook.Application")
'Requires early binding (late binding not working):
' Go to the Tools menu, Resources. Add Microsoft Outlook 16.0 Object Library
'Because AppointmentItem does not use HTML, must utilize Word VBA
Dim ActInsp As Outlook.Inspector

'Static fields
emailFrom = "test@gmail.com"
emailSubject = "My Subject"
emailBody = "Body of calendar invite"
hyperlink = "https://www.register.com/"
emailLocation = "My Location"
appt_Date = #7/30/2019#
appt_Time = #3:00:00 PM#
appt_Duration = "90"

'Create Appointment and Send
Set myAppt = olApp.CreateItem(olAppointmentItem)
With myAppt
    .MeetingStatus = olMeeting
    .SendUsingAccount = emailFrom
    .Subject = emailSubject
    .Location = emailLocation
    .Start = appt_Date & " " & appt_Time
    .Duration = 90

    Set myResourceAttendee = .Recipients.Add("test1@test.com")
    myResourceAttendee.Type = olResource 'Add as a Resource/BCC

    Set ActInsp = myAppt.GetInspector
    With ActInsp
        .WordEditor.Characters(1).InsertBefore (emailBody & vbNewLine & vbNewLine & hyperlink)
        .Close (olSave)
    End With

    .Display
    '.Send

End With 'myAppt

End Sub

标签: excelvba

解决方案


关闭对象,而不是ActInsp关闭myAppt对象。

所以更改这部分代码:

With ActInsp
    .WordEditor.Characters(1).InsertBefore (emailBody & vbNewLine & vbNewLine & hyperlink)
    .Close (olSave)
End With

.Display
'.Send

和:

With ActInsp
    .WordEditor.Characters(1).InsertBefore (emailBody & vbNewLine & vbNewLine & Hyperlink)
    '.Close (olSave)
End With

.Display
.Close (olSave)

'.Send

推荐阅读