从带有VBA的MS Project创建outlook约会并通过电子邮件发送
一个VBA新手 我使用MS Project作为任务调度器,并在MS Project中构建了自定义视图,以便每个资源都可以查看其特定的任务。我使用下面的代码在每个资源的Outlook日历中创建约会,方法是在MS Project中选择特定的任务视图并运行下面的宏。这可以很好地工作,并根据需要在个人日记中填充约会 但是,我试图扩展此代码的功能,以允许“管理员”为MS Project中的每个资源选择特定的任务视图,然后运行宏生成要发送给每个indviudal的约会,以便在其日历中创建约会 我遇到的问题是,虽然Outlook约会创建正确,并且在Apoint的“与会者”选项卡中包含(已解决的)资源名称,但约会表单本身缺少“发送”按钮。如果我随后手动将任何其他与会者添加到约会中,该约会将得到解决,并显示“发送”按钮,并且可以正确发送 Msgbox仅显示MS Project中分配的资源的名称 我在设置我的代表时尝试了多种不同的方法,但没有成功,对此的任何想法都将不胜感激从带有VBA的MS Project创建outlook约会并通过电子邮件发送,vba,outlook,ms-project,Vba,Outlook,Ms Project,一个VBA新手 我使用MS Project作为任务调度器,并在MS Project中构建了自定义视图,以便每个资源都可以查看其特定的任务。我使用下面的代码在每个资源的Outlook日历中创建约会,方法是在MS Project中选择特定的任务视图并运行下面的宏。这可以很好地工作,并根据需要在个人日记中填充约会 但是,我试图扩展此代码的功能,以允许“管理员”为MS Project中的每个资源选择特定的任务视图,然后运行宏生成要发送给每个indviudal的约会,以便在其日历中创建约会 我遇到的问题是
我不确定它是否能完全解决问题,但这似乎是不正确的语法:
With myItem
Set myDelegate = myItem.Recipients.Add(myTask.Resources(1).EMailAddress)
End with
如果将与
一起使用,则应将其置于With块之外:
Set myDelegate = myItem.Recipients.Add(myTask.Resources(1).EMailAddress)
With myItem
'...
End with
或通过以下方式访问属性:
With myItem
Set myDelegate = .Recipients.Add(myTask.Resources(1).EMailAddress)
End with
也使用
debug.print(ActiveSelection.Tasks & " ; " & myTask)
检查对象是否为空
还可以使用“局部变量”窗口检查对象的属性。myTask应该显示一个属性列表,其中资源(1)应该有自己的子属性,其中“emaiAddress” 金姆,谢谢你的意见。修改后的“Set”工作正常,但“debug”失败,参数不是可选的(在任务上)。Kim,我忘了感谢你提供的本地变量和监视窗口,这些被证明是有用的,我将继续解决这个问题。如果姚有任何进一步的想法,那将是最有帮助的。这是个错误
debug.print(myTask)
但我不确定这是否有效。我将继续使用“局部变量”窗口进行调试,这是查看对象属性的最简单方法。
debug.print(ActiveSelection.Tasks & " ; " & myTask)