如何通过MS-Project获得VBA员工的工作和缺勤日期? (员工是资源)
一些额外的信息:
我知道如何获得任务
Dim ts as Tasks
Set ts = ActiveProject.Tasks
我知道如何从我的项目文件中获取资源:
Dim rs as Resources
Set rs = ActiveProject.ressources
但是我没有找到一种(微不足道的)方法来从这些变量中获得工作和缺勤日。
答案 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。