【问题标题】:Loop through each field for MS Project遍历 MS Project 的每个字段
【发布时间】:2015-11-19 11:12:37
【问题描述】:

我正在尝试遍历我的 MS Project 文件中的每个字段并收集有关该字段的信息(自定义名称是特定的)。最简单的方法是什么?

谢谢

【问题讨论】:

    标签: vba ms-office ms-project


    【解决方案1】:

    要获取字段的自定义名称,您需要字段常量并遍历所有字段,您需要存储list of all field constants

    这是一个简单的示例,可帮助您入门。我为 Task Text1-30 字段硬编码了一个字段常量数组。

    Sub GetCustomFieldNames()
    
        Dim TextFields As Variant
        TextFields = Array(188743731, 188743734, 188743737, 188743740, 188743743 _
            , 188743746, 188743747, 188743748, 188743749, 188743750, 188743997, 188743998 _
            , 188743999, 188744000, 188744001, 188744002, 188744003, 188744004, 188744005 _
            , 188744006, 188744007, 188744008, 188744009, 188744010, 188744011, 188744012 _
            , 188744013, 188744014, 188744015, 188744016)
    
        Dim FldID As Variant
    
        For Each FldID In TextFields
            If Len(CustomFieldGetName(FldID)) > 0 Then
                Debug.Print FieldConstantToFieldName(FldID), CustomFieldGetName(FldID)
            End If
        Next FldID
    
    End Sub
    

    以下是一些改进方法:

    • 用枚举常量替换数值(例如 pjTaskText1)
    • 将字段列表存储在外部文件中(例如,包含字段名称、字段常量等的 csv 文件)
    • 如果您的宏存储在仅限宏的项目文件中,您可以将字段存储在资源表中并通过循环访问资源来循环访问它们(参见屏幕截图)。

    【讨论】:

    • 谢谢这是完美的!现在有没有办法可以检索该字段的默认项目名称?我想我可以只看字段 ID 列表中的字段名称
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    相关资源
    最近更新 更多