更新项目字段中的日期

Updating date in fields in project

我在使用 VBA 更新 MS Project 字段时遇到以下问题:

我试试这个:

For Each t In ActiveProject.Tasks 

     'The following displays correctly Mo 14.05.18
     Debug.Print Format(CDate("14.05.18", " ddd dd.mm.yy"))

     'The following results in an error 438 (Method not supported)
     t.Datum3 = Format(CDate("12.05.18","ddd dd.mm.yy"))
    'this works fine but i'm not able to sort it proberly since it is a text sort for date fields, which is not wanted ...
    't.Text25 = Format(CDate("12.05.15","ddd dd.mm.yy"))
 Next t 

似乎格式不是问题(我尝试了各种格式,我什至从对象中读取它以验证应该使用格式)但通常,我无法更新日期字段,我' MS Project 的预定义日期字段以及用户定义的日期字段都存在这些问题。

文本字段完全没有问题。

Run-time 错误 438:Object 不支持此 属性 或方法

您收到 run-time 错误 438,因为 Task object 没有名为 Datum3 的 属性。尽管德语版本中的字段标题是 "Datum3",但实际的 属性 名称是 Date3。 (see MS Project object model, German version)

中刊

虽然 MS Project 将接受格式为文本的日期字段值,但没有必要且格式不正确,因为它暗示日期字段是文本。而是像这样设置值:

t.Date3 = CDate("14.05.18") 

注意:日期字段的显示格式在项目选项中设置(参见 Change the Date Format or Ändern des Datumsformats)。

Rachel 的回答是最好的...但是,如果您的核心需求是排序并且您受困于文本,另一种方法是使用 ISO 8601 格式的日期:YYYY-MM-DD。参见 https://en.wikipedia.org/wiki/ISO_8601 for details. Or better yet: https://xkcd.com/1179/