You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中为Outlook AppointmentItem添加参会者的问题

解决VB.NET中Outlook AppointmentItem设置RequiredAttendees的错误

你碰到的这个报错核心原因很简单:RequiredAttendees是一个字符串属性,不是可调用的方法,所以不能用(邮箱地址)的方式传参,直接赋值字符串就行。

错误原因分析

你写的TempAppItem.RequiredAttendees("some@emailaddress.com")是把属性当成了方法来调用,而VB.NET提示的Too many arguments to 'Property RequiredAttendees As String'就是在告诉你:这个属性只接受字符串赋值,不支持传参调用。

修正后的代码

下面是调整后的完整代码,我还顺便优化了资源释放和操作顺序:

Public Sub SendAppointment()
    Dim TempApp As Outlook.Application = New Outlook.Application()

    ' 创建约会项对象
    Dim TempAppItem As Outlook.AppointmentItem = TempApp.CreateItem(Outlook.OlItemType.olAppointmentItem)
    TempAppItem.Subject = Onderwerp.SelectedItem
    TempAppItem.Body = Opmerking.Text

    ' 设置地点(需要时取消注释)
    'TempAppItem.Location = "No Location"

    ' 设置开始和结束时间
    TempAppItem.Start = Convert.ToDateTime(Btijd.SelectedItem)
    TempAppItem.End = Convert.ToDateTime(Etijd.SelectedItem)        

    ' ✅ 正确设置必填参会者:直接赋值字符串
    ' 单个参会者
    TempAppItem.RequiredAttendees = "some@emailaddress.com"
    ' 多个参会者用分号分隔
    'TempAppItem.RequiredAttendees = "colleague1@company.com; colleague2@company.com"

    ' 发送约会:Send方法会自动完成保存和发送操作,无需额外调用Save()
    TempAppItem.Send()

    ' 释放资源
    TempAppItem = Nothing
    TempApp = Nothing
End Sub

额外提示

  1. 直接使用邮箱地址比联系人名称更可靠,避免Outlook无法解析联系人名称的问题;
  2. Send()方法执行后,Outlook会自动把约会发送给参会者,同时在你的日历中创建对应的条目,所以不需要再调用Save();
  3. 如果只是想把约会保存到自己的日历而不发送,才需要调用Save(),此时不需要调用Send()。

内容的提问来源于stack exchange,提问作者Xavier93

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:17:59