MS Project VBA如何将当前Finish、Start日期复制到Finish1、Start1字段
MS Project 任务日期快照VBA实现方案
功能说明
将项目中所有任务的当前开始日期(Start)、*完成日期(Finish)*批量写入自定义日期字段Start1、Finish1,留存快照用于后续跟踪工期、计划变动趋势。
使用步骤
- 打开目标MS Project项目文件
- 按
Alt + F11调出VBA编辑器 - 依次点击菜单栏「插入」→「模块」
- 将下方代码粘贴到空白模块编辑区域
- 按
F5即可运行代码完成写入
完整代码
Sub 保存任务日期快照() Dim singleTask As Task '遍历当前项目的全部任务 For Each singleTask In ActiveProject.Tasks '过滤掉项目中的空白无效任务行 If Not singleTask Is Nothing Then '写入开始日期快照到Start1字段 singleTask.Start1 = singleTask.Start '写入完成日期快照到Finish1字段 singleTask.Finish1 = singleTask.Finish End If Next singleTask MsgBox "所有任务日期快照已成功保存到Start1、Finish1字段", vbOKOnly, "操作完成" End Sub
注意事项
- 如需留存多版本快照,可将代码中的
Start1、Finish1替换为其他自定义日期字段(如Start2/Finish2,最多支持Start10/Finish10) - 若不需要保存摘要任务的日期,可将判断条件修改为
If Not singleTask Is Nothing And Not singleTask.Summary Then - 运行代码前建议先备份项目文件,避免误操作
内容的提问来源于stack exchange,提问作者Alw
相关产品推荐
相关产品推荐

