【问题标题】:Replace existing custom fields from global.mpt替换 global.mpt 中的现有自定义字段
【发布时间】:2022-08-02 23:01:27
【问题描述】:

我们运行了很多项目文件,并希望在我打开文件时使用存储在我们的全局文件中的新查找和公式来更新/替换现有的自​​定义字段。

我提出了以下代码,但问题是如果文件已保存,它不会附加 \".mpp\" 文件类型。我也尝试过“ActiveProject.FullName”,但是这会返回运行时 1101 错误。

我不想硬编码文件名,因为这将是一场噩梦。

关于如何解决这个问题的任何想法?

提前致谢

Sub DeleteUpdateFields()

OrganizerDeleteItem pjFields, FileName:=ActiveProject.Name, Name:=\"Test (Text19)\"
OrganizerMoveItem pjFields, FileName:=\"Global.MPT\", ToFileName:=ActiveProject.Name, Name:=\"Test (Text19)\"

End sub

    标签: vba ms-project


    【解决方案1】:

    乔, 您没有指定扩展名 (.mpp) 是始终丢失还是仅针对某些文件,但这里有一些代码将首先测试扩展名,然后在丢失时添加它。

    您收到运行时错误的原因是 ActiveProject.FullName 包含在此实例中不是有效参数的路径。

    我假设您的代码在每个文件中作为打开事件运行,而不是您必须为每个文件启动宏。如果没有,请告诉我们。

    Option Compare Text
    Sub DeleteUpdateFields()
    Dim FNam As String
    FNam = ActiveProject.Name
    If InStr(1, ActiveProject.Name, ".mpp") = 0 Then
        FNam = ActiveProject.Name & ".mpp"
    End If
    OrganizerDeleteItem pjFields, FileName:=FNam, Name:="Test (Text19)"
    OrganizerMoveItem pjFields, FileName:="Global.MPT", ToFileName:=FNam,     Name:="Test (Text19)"
    
    End Sub
    

    希望这可以帮助。 约翰

    【讨论】:

      猜你喜欢
      • 2021-02-18
      • 2011-07-29
      • 2020-11-19
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-13
      相关资源
      最近更新 更多