如何通过VBA代码在MPP中添加年度日历例外项?
解决Project VBA添加年度重复日历例外项的1101错误
- 在Project界面中,选中「年度」单选按钮,设置例外项(休息日)的重复月日就能创建年度重复的日历例外,但通过VBA开发实现时遇到报错1101的问题。
- 尝试使用
Type:=2(对应pjYearlyMonthDay,即每年指定月日重复,如12月24日)编写代码,原代码如下:
Dim CalName As String CalName = ActiveProject.Calendar.Name ActiveProject.BaseCalendars(CalName).Exceptions.Add Type:=2, Start:="5/01/2023", Occurrences:=10, Name:="TEST", MonthDay:="5 January"
错误原因与解决方法
错误源于MonthDay参数格式不符合要求:当使用pjYearlyMonthDay类型(Type=2)时,MonthDay需要传入数字格式的“月份/日期”,而非文本格式的“5 January”。
正确代码示例
Dim CalName As String CalName = ActiveProject.Calendar.Name ' MonthDay使用"1/5"表示1月5日,与Start参数的月日保持一致 ActiveProject.BaseCalendars(CalName).Exceptions.Add _ Type:=2, _ Start:="2023/1/5", _ Occurrences:=10, _ Name:="TEST", _ MonthDay:="1/5"
关键说明
pjYearlyMonthDay类型要求MonthDay参数格式为"MM/DD",例如"12/24"代表每年12月24日重复。Start参数必须设置为该例外项首次出现的日期,且月日需与MonthDay指定的内容完全一致,否则会触发参数不匹配错误。
内容的提问来源于stack exchange,提问作者Bogdan
相关产品推荐
相关产品推荐

