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

问题描述:

以下是我编写的用于自动发送会议邀请的代码。涉及Outlook VBA中的Excel单元格的应用程序定义或对象定义的错误

代码从工作表中的单元格中选取内容:Final_List。

我强调了在那里我得到一个错误,当我尝试从Excel

应用-defined或对象获取收件人地址 - 定义的错误。

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!" 
+0

你有两个嵌套的'With'报表,这意味着所有的单元格地址在内'With'声明是在当前活动工作表,可能会或可能不会“Final_List”。 – Variatus

+0

@ Variatus:我可以激活“Final_List”工作表。但我无法在邀请中添加收件人?对这一点有什么帮助? –

+0

AppointmentItem对象没有“收件人”属性。 https://msdn.microsoft.com/en-us/library/office/aa210899(v=office.11​​).aspx – Variatus

的AppointmentItem对象没有一个收件人属性。 Compare MSDN library

我得到了这个解决方案:

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