Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从带有VBA的MS Project创建outlook约会并通过电子邮件发送_Vba_Outlook_Ms Project - Fatal编程技术网

从带有VBA的MS Project创建outlook约会并通过电子邮件发送

从带有VBA的MS Project创建outlook约会并通过电子邮件发送,vba,outlook,ms-project,Vba,Outlook,Ms Project,一个VBA新手 我使用MS Project作为任务调度器,并在MS Project中构建了自定义视图,以便每个资源都可以查看其特定的任务。我使用下面的代码在每个资源的Outlook日历中创建约会,方法是在MS Project中选择特定的任务视图并运行下面的宏。这可以很好地工作,并根据需要在个人日记中填充约会 但是,我试图扩展此代码的功能,以允许“管理员”为MS Project中的每个资源选择特定的任务视图,然后运行宏生成要发送给每个indviudal的约会,以便在其日历中创建约会 我遇到的问题是

一个VBA新手

我使用MS Project作为任务调度器,并在MS Project中构建了自定义视图,以便每个资源都可以查看其特定的任务。我使用下面的代码在每个资源的Outlook日历中创建约会,方法是在MS Project中选择特定的任务视图并运行下面的宏。这可以很好地工作,并根据需要在个人日记中填充约会

但是,我试图扩展此代码的功能,以允许“管理员”为MS Project中的每个资源选择特定的任务视图,然后运行宏生成要发送给每个indviudal的约会,以便在其日历中创建约会

我遇到的问题是,虽然Outlook约会创建正确,并且在Apoint的“与会者”选项卡中包含(已解决的)资源名称,但约会表单本身缺少“发送”按钮。如果我随后手动将任何其他与会者添加到约会中,该约会将得到解决,并显示“发送”按钮,并且可以正确发送

Msgbox仅显示MS Project中分配的资源的名称

我在设置我的代表时尝试了多种不同的方法,但没有成功,对此的任何想法都将不胜感激



我不确定它是否能完全解决问题,但这似乎是不正确的语法:

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)