0

如何从 MS-Project 获取使用 VBA 的员工的工作和缺勤天数?(员工就是资源)

一些附加信息:

我知道如何获得任务

Dim ts as Tasks
Set ts = ActiveProject.Tasks

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

Dim rs as Resources
Set rs = ActiveProject.ressources

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

4

2 回答 2

1

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

ActiveProject.Resources.Item(1).Calendar

在这个简单的示例中,我们将获取项目中的第一个资源并提取它的关联日历。

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

...Calendar.BaseCalendar

资源日历和基准日历都定义了工作日、工作日和例外情况。例外情况通常是定义缺勤时间的方式......即它们是正常工作模式的例外情况:

...Calendar.WorkWeeks
...Calendar.WeekDays
...Calendar.Exceptions
于 2011-11-01T15:56:20.347 回答
-1

答案已经提供了入门信息,但实际上并没有回答这个问题。如前所述,“例外”确实是如何定义缺勤期,但要确定给定日期是否是异常对象的缺勤日,将需要大量的解析代码。

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

于 2018-11-07T13:48:10.360 回答