如何获得员工(资源)的工作日和缺勤日?

时间:2011-10-14 07:57:01

标签: vba ms-project

如何通过MS-Project获得VBA员工的工作和缺勤日期? (员工是资源)

一些额外的信息:

我知道如何获得任务

Dim ts as Tasks
Set ts = ActiveProject.Tasks

我知道如何从我的项目文件中获取资源:

Dim rs as Resources
Set rs = ActiveProject.ressources

但是我没有找到一种(微不足道的)方法来从这些变量中获得工作和缺勤日。

2 个答案:

答案 0 :(得分:1)

您需要查看Resource对象以查找工作日和非工作日:

ActiveProject.Resources.Item(1).Calendar

在这个简单的例子中,我们将获取项目中的第一个资源,并将其与相关的日历拉出来。

资源日历将具有从中继承的基本日历:

...Calendar.BaseCalendar

资源日历和基本日历定义工作日,工作周和例外。例外情况通常是如何定义缺勤时期......即它们是正常工作模式的例外:

...Calendar.WorkWeeks
...Calendar.WeekDays
...Calendar.Exceptions

答案 1 :(得分:-1)

答案已经提供了入门的信息,但实际上并未回答问题。如前所述,“异常”的确是定义缺勤时间的方式,但是要确定给定日期是否是从异常对象出发的缺勤日,则解析代码会花费很多。

凭经验确定工作日会容易得多,也更加可靠。假设变量“ cal”是有问题的日历,则声明一个类型为long的变量(例如“ d”),然后从某个开始日期循环到某个结束日期1,并使用Application.datedifference(d确定该日期是否为工作日。 ,d + 1,cal)。一个非工作日将产生0。