【发布时间】:2019-12-18 17:10:40
【问题描述】:
我有 Excel VBA,它从电子表格中获取数据,然后向团队成员和客户发送 Outlook 日历邀请。
它在收件人:字段或主题中保留没有联系人的草稿。这是我的代码的问题,还是 Outlook 的问题?
Dim olApp As Outlook.Application
Dim olEmail As Outlook.MailItem
Dim olCal As Outlook.AppointmentItem
Dim olFolder As Outlook.Folder
Dim RequiredAttendee, OptionalAttendee, ResourceAttendee As Outlook.Recipient
Dim rtf() As Byte
Dim objOutlook As Object, objnSpace As Object, objFolder As MAPIFolder
Dim rngTo As Range
Dim rngCC As Range
Dim rngSUB As Range
Dim rngCALloc As Range
Dim rngCALstart As Range
Dim rngCALend As Range
Dim rngBody As Range
Dim myItem As Object
Dim oApp As Object
Dim oNameSpace As Namespace
Dim oFolder As Object
Sub SVN()
'Creates Outlook Calendar Site Visit Notification for one day onsite.'
Set olApp = New Outlook.Application
Set m = olApp.CreateItem(olMailItem)
Set appt = olApp.CreateItem(olAppointmentItem)
With ActiveSheet
Set rngTo = .Range("J3")
Set rngCC = .Range("J4")
Set rngCALloc = .Range("J5")
Set rngCALstart = .Range("J7")
Set rngCALend = .Range("J8")
Set rngSUB = .Range("J14")
End With
MsgBox "Verify Attendees: Customer, Sales, Service."
appt.MeetingStatus = olMeeting
appt.RequiredAttendees = rngTo.Value
appt.OptionalAttendees = rngCC.Value
appt.Subject = rngSUB.Value
appt.Location = rngCALloc.Value
appt.Start = rngCALstart.Value
appt.End = rngCALend.Value
appt.AllDayEvent = True
m.BodyFormat = olFormatHTML
m.HTMLBody = Range("J16").Value
m.GetInspector().WordEditor.Range.FormattedText.Copy
appt.GetInspector().WordEditor.Range.FormattedText.Paste
appt.Display
End Sub
【问题讨论】:
-
仅供参考 -
Dim RequiredAttendee, OptionalAttendee, ResourceAttendee As Outlook.Recipient。只有ResourceAttendee必须是Outlook.Recipient。其他的是Variant...你需要显式声明所有变量类型,否则默认为Variant。 (这可能不是问题,只是想指出这一点。)
标签: excel vba outlook appointment