【问题标题】:Set flag type task level enterprise custom field using VBA使用 VBA 设置标志类型任务级企业自定义字段
【发布时间】:2017-05-11 14:22:38
【问题描述】:

我想将任务级别的标志类型企业自定义字段设置为 True/False 或 Yes/No。我可以知道 VBA 中相同的语法吗?

MSDN 说:

projectField = FieldNameToFieldConstant("TestEntProjText", pjProject)

ActiveProject.ProjectSummaryTask.SetField FieldID:=projectField, Value:="This is a new value." 

其中 Value 是一个字符串。但就我而言,我希望它是一个布尔值。

【问题讨论】:

    标签: vba ms-project


    【解决方案1】:

    SetField 方法始终采用字符串值,但可用于设置任何字段。使用“是”和“否”设置布尔值。

    相关方法GetField返回一个字段值,因为它显示在表格视图中,因此总是返回一个字符串。

    【讨论】:

      【解决方案2】:

      子 setEnterpriseFlag()

      Dim myTask As Task
      Set myTask = ActiveProject.Tasks.Item(1)
      
      Debug.Print myTask.GetField(pjTaskEnterpriseFlag1)
      Debug.Print myTask.GetField(pjTaskEnterpriseFlag2)
      
      myTask.SetField pjTaskEnterpriseFlag1, boolToStr_forSetField(True)
      myTask.SetField pjTaskEnterpriseFlag2, boolToStr_forSetField(False)
      
      Debug.Print myTask.GetField(pjTaskEnterpriseFlag1)
      Debug.Print myTask.GetField(pjTaskEnterpriseFlag2)
      

      结束子

      '很遗憾 task.SetField 和 task.GetField 只处理字符串。一个容易的 '管理这个的方法是使用一个简单的包装函数。 函数 boolToStr_forSetField(boolVal As Boolean) As String 如果 boolVal 则 boolToStr_forSetField = "是" 别的 boolToStr_forSetField = "否" 万一 结束函数

      【讨论】:

        猜你喜欢
        • 2013-09-23
        • 1970-01-01
        • 1970-01-01
        • 2015-04-04
        • 2011-07-29
        • 2017-06-25
        • 1970-01-01
        • 2014-03-14
        • 1970-01-01
        相关资源
        最近更新 更多