我无法创建会议请求。我在.HTMLbody行上出错了。我收到的错误是"运行时错误'''对象不支持此属性或方法" 。我还添加了Ron De' Bruin的RangeToHTML代码。
请帮我解决。
这是我的代码:
Sub Meeting_Request()
Dim myoutlook As Object ' Outlook.Application
Dim r As Long
Dim rng As Range
Dim rng2 As Range
Dim myapt As Object ' Outlook.AppointmentItem
' late bound constants
Const olAppointmentItem = 1
Const olBusy = 2
Const olMeeting = 1
' Create the Outlook session
Set myoutlook = CreateObject("Outlook.Application")
' Start at row 18
Sheets("Automation").Select
r = 18
Do Until Trim$(Cells(r, 1).Value) = ""
'Adding Goals and other details in email draft
Set rng = Nothing
On Error Resume Next
Set rng = Range("A9:A14").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected" & _
vbNewLine & "please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
'Sheets("Automation").Select
' Create the AppointmentItem
Set myapt = myoutlook.CreateItem(olAppointmentItem)
' Set the appointment properties
'Sheets("Automation").Select
With myapt
.Subject = Sheets("Automation").Range("N" & r) & " day review"
.Start = Sheets("Automation").Range("P" & r) & " " & "7:00:00 PM"
.Duration = 0
.Recipients.Add Sheets("Automation").Range("C" & r).Value & ";" & Sheets("Automation").Range("K" & r).Value
.MeetingStatus = olMeeting
' not necessary if recipients are email addresses
' myapt.Recipients.ResolveAll
'.AllDayEvent = "No"
.BusyStatus = olBusy
' .BusyStatus = Cells(r, 5).Value
.ReminderSet = False
.HTMLBody = RangetoHTML(rng)
.Save
r = r + 1
.Display
End With
Loop
End Sub
答案 0 :(得分:0)
约会项目使用主体的RTF标记而不是HTML(请参阅RTFBody属性)。因此,您将找不到约会的HTMLBody
属性。如果需要将某些HTML标记粘贴到正文,则可以使用Word对象模型。有关详细信息,请参阅Write HTML content to word document using C#。
从Outlook 2016开始,您可以尝试使用AppointmentItem.PropertyAccessor访问代表HTML正文的PR_HTML
属性。 DASL名称为http://schemas.microsoft.com/mapi/proptag/0x10130102。