You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Project VBA 实现任务指定字段变更时自动更新自定义字段Text10

Microsoft Project 2019 任务自定义日期字段变更监控VBA实现方案

实现逻辑

你需要使用Project内置的Project_Change事件,该事件会在项目内对象(任务/资源等)属性变更时触发,可直接获取到本次变更的字段类型,不需要全量遍历任务,不会出现卡顿问题。

操作步骤

  1. 打开目标Project文件,按Alt+F11调出VBA编辑器
  2. 在左侧工程资源管理器面板中,双击ThisProject对象,进入代码编辑界面
  3. 将以下代码粘贴到编辑区域,保存文件即可生效

完整代码

Private Sub Project_Change(ByVal pj As Project, ByVal Field As Long, ByVal NewVal As Variant)
    ' 仅处理任务层级的字段变更
    If ActiveCell.Task Is Nothing Then Exit Sub
    
    Dim targetTask As Task
    Set targetTask = ActiveCell.Task
    Dim fieldName As String
    Dim logContent As String
    
    ' 匹配需要监控的4个自定义日期字段
    Select Case Field
        Case pjTaskDate1
            fieldName = "Date1"
        Case pjTaskDate2
            fieldName = "Date2"
        Case pjTaskDate3
            fieldName = "Date3"
        Case pjTaskDate4
            fieldName = "Date4"
        Case Else
            ' 非目标字段直接退出
            Exit Sub
    End Select
    
    ' 生成变更日志写入Text10,日期格式可根据需要调整
    logContent = fieldName & " modified " & Format(Date, "mm/dd/yy")
    targetTask.Text10 = logContent
End Sub

注意事项

  • 打开文件时需要启用宏,否则事件代码不会触发
  • 若同时修改多个目标字段,事件会按变更顺序依次触发,最终Text10会保留最后一个变更字段的记录,完全符合需求
  • 该代码仅对当前粘贴的Project文件生效,如需应用到所有文件,需将代码存入全局模板

内容的提问来源于stack exchange,提问作者NelliNoodle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:45:07