简体   繁体   English

引用Outlook VBA中Excel单元格的应用程序定义或对象定义的错误

[英]Application -defined or object - defined error referring to Excel Cells in Outlook VBA

Below is code I have written to automate sending meeting invites. 以下是我编写的用于自动发送会议邀请的代码。

The code picks content from cells in sheet: Final_List. 该代码从表单:Final_List中的单元格中选择内容。

I have highlighted where I'm getting an error when I try get the recipient address from Excel 我突出显示了尝试从Excel中获取收件人地址时出现错误的地方

Application -defined or object - defined error. 应用程序定义或对象定义的错误。

Dim outlookApp As Outlook.Application
Dim outlookmeet As AppointmentItem
Dim myRequiredAttendee As Recipient

Dim sh As Worksheet
Dim RowCount As Long

RowCount = 2
'row 1 has headers

With Worksheets("Final_List")

    Do While IsEmpty(Cells(RowCount, 1).Value) = False

        Set outlookApp = CreateObject("Outlook.Application")
        Set outlookmeet = outlookApp.CreateItem(olAppointmentItem)
        With outlookmeet

            .MeetingStatus = olMeeting

            .Subject = Cells(RowCount, 1).Value & " - " & Cells(RowCount, 2).Value
            .Location = Cells(RowCount, 3).Value
            .Start = Cells(RowCount, 5).Value
            .Duration = Cells(RowCount, 7).Value

            'getting errors on this line                     
            .Recipients.Add (Cells(RowCount, 6).Value)

            .Recipients.ResolveAll

            .Body = Cells(RowCount, 4).Value
            .Send
        End With

        RowCount = RowCount + 1

    Loop
End With

Set outlookmeet = Nothing
Set outlookApp = Nothing
MsgBox "All invites sent!"

The AppointmentItem object doesn't have a Recipient property. AppointmentItem对象没有收件人属性。 Compare MSDN library 比较MSDN库

I got this solution: 我得到了这个解决方案:

Sub ScheduleMeeting()

    Dim outlookApp As Outlook.Application
    Dim outlookmeet As Outlook.AppointmentItem

    Dim RowCount As Long
    Dim Name1 As Variant

    RowCount = 2
    'row 1 has headers
    Worksheets("MeetingInvite").Activate

    With Worksheets("MeetingInvite")

        Do While IsEmpty(Cells(RowCount, 1).Value) = False

            Set outlookApp = CreateObject("Outlook.Application")
            Set outlookmeet = outlookApp.CreateItem(olAppointmentItem)

            With outlookmeet

                .MeetingStatus = olMeeting
                .Subject = Cells(RowCount, 1).Value 
                .Location = Cells(RowCount, 2).Value
                .Start = Cells(RowCount, 4).Value
                .Duration = Cells(RowCount, 6).Value

                .RequiredAttendees = Cells(RowCount, 5).Value

                .Body = Cells(RowCount, 3).Value

                .Display

            End With

            RowCount = RowCount + 1

        Loop
    End With

    Set outlookmeet = Nothing
    Set outlookApp = Nothing
    'MsgBox "All invites sent!"

End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM