Vba 更新项目中字段中的日期

Vba 更新项目中字段中的日期,vba,runtime-error,ms-project,datefield,Vba,Runtime Error,Ms Project,Datefield,使用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)

使用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中预定义的日期字段以及用户定义的日期字段都存在这些问题


文本字段根本不会产生任何问题。

运行时错误438:对象不支持此属性或方法

您得到运行时错误438,因为
任务
对象没有名为
Datum3
的属性。尽管德语版本中的字段标题是“Datum3”,但实际的属性名称是
Date3
。()

第二期

虽然MS Project将接受格式为文本的日期字段值,但这并不是必需的,而且格式不好,因为这意味着日期字段是文本。改为如下设置值:

t.Date3 = CDate("14.05.18") 

注意:日期字段的显示格式在项目选项中设置(请参见或)。

运行时错误438:对象不支持此属性或方法

您得到运行时错误438,因为
任务
对象没有名为
Datum3
的属性。尽管德语版本中的字段标题是“Datum3”,但实际的属性名称是
Date3
。()

第二期

虽然MS Project将接受格式为文本的日期字段值,但这并不是必需的,而且格式不好,因为这意味着日期字段是文本。改为如下设置值:

t.Date3 = CDate("14.05.18") 

注意:日期字段的显示格式在项目选项中设置(请参见或)。

Rachel的答案最好是。。。但是,如果您的核心需求是排序,而您一直使用文本,那么另一种方法是使用ISO 8601格式的日期:YYYY-MM-DD。有关详细信息,请参阅。或者更好:。

雷切尔的答案是最好的。。。但是,如果您的核心需求是排序,而您一直使用文本,那么另一种方法是使用ISO 8601格式的日期:YYYY-MM-DD。有关详细信息,请参阅。或者更好:。

欢迎使用堆栈溢出!请务必查看,以及。如果您对某些特定的问题有疑问,请提出您的问题,以提供更多信息(例如样本数据和您遇到的错误(以及错误发生的位置)和示例(如此处所述:)并分享您尝试过的内容和迄今为止的研究成果。此网站将有助于。请确保准确发布您的代码。您的问题是运行时错误,但发布的代码有编译错误(缺少右括号)。除此之外,这是一个格式良好的问题--它包含MS Project VBA问题所需的所有信息(忽略您收到的否决票)。欢迎使用堆栈溢出!请务必查看,以及。如果您对某些特定内容有疑问,请提问以提供更多信息(例如示例数据、您遇到的错误(以及错误发生的位置)和示例(如此处所述:)并分享您尝试过的内容和迄今为止的研究成果。此网站将有助于。请确保准确发布您的代码。您的问题是运行时错误,但发布的代码有编译错误(缺少右括号)。除此之外,这是一个格式良好的问题--它包含MS Project VBA问题所需的所有信息(忽略你收到的反对票).那很好,你完全正确,很多次了!英语和德语混淆了!很高兴这对你有效。别忘了将答案标记为已接受。那很好,你完全正确,很多次了!英语和德语混淆了!很高兴这对你有效。别忘了将答案标记为已接受。