【问题标题】:How can I import both the Task Start date and the Task Finish date from Excel at the same time, using VBA?如何使用 VBA 同时从 Excel 导入任务开始日期和任务完成日期?
【发布时间】:2021-08-07 02:17:10
【问题描述】:

当我尝试使用以下代码同时导入任务开始日期和任务完成日期时,第一个任务的日期似乎可以导入,但随后任务的日期值已更改为应有的值。如果我注释掉 MapEdit Name:="Map ", DataCategory:=0, FieldName:="Finish", ExternalFieldName:="Task_Finish_Date" 行,只导入开始日期,那么将为所有任务的开始日期导入正确的日期(日期没有更改),但是,当然,我没有得到我的完成日期。我如何同时导入我所有任务的开始日期和结束日期?

MapEdit Name:="Map ", Create:=True, OverwriteExisting:=True, DataCategory:=0, CategoryEnabled:=True, _
        TableName:=ws.Name, FieldName:="Name", ExternalFieldName:="Task_Name", ExportFilter:="All Tasks", ImportMethod:=0, _
        HeaderRow:=True, AssignmentData:=False, TextDelimiter:=Chr$(9), TextFileOrigin:=0, UseHtmlTemplate:=False, IncludeImage:=False
    MapEdit Name:="Map ", DataCategory:=0, FieldName:="Outline Level", ExternalFieldName:="Task_Outline_Level"
    MapEdit Name:="Map ", DataCategory:=0, FieldName:="Created", ExternalFieldName:="Task_Created_Date"
    MapEdit Name:="Map ", DataCategory:=0, FieldName:="Start", ExternalFieldName:="Task_Start_Date"
    MapEdit Name:="Map ", DataCategory:=0, FieldName:="Finish", ExternalFieldName:="Task_Finish_Date"
    MapEdit Name:="Map ", DataCategory:=0, FieldName:="% Complete", ExternalFieldName:="Task_Percent_Complete"
    MapEdit Name:="Map ", DataCategory:=0, FieldName:="Notes", ExternalFieldName:="Task_Notes"
    MapEdit Name:="Map ", DataCategory:=0, FieldName:="Board Status", ExternalFieldName:="Task_Board_Status"
    MapEdit Name:="Map ", DataCategory:=0, FieldName:="Resource Names", ExternalFieldName:="Project_Resources"
    MapEdit Name:="Map ", DataCategory:=0, FieldName:="Task Tags", ExternalFieldName:="Task_Tags"
    MapEdit Name:="Map ", DataCategory:=0, FieldName:="Task Mode", ExternalFieldName:="Task_Mode"
    
FileOpenEx Name:=xlFile2, ReadOnly:=False, Merge:=0, FormatID:="MSProject.ACE.14", map:="Map ", DoNotLoadFromEnterprise:=True

【问题讨论】:

  • 如果没有看到您正在导入的实际数据的样本和由此产生的时间表,很难说发生了什么。建议在不导入大纲级别和完成百分比的情况下进行测试;就此而言,从最少字段(任务名称、开始、完成)开始,并一次添加一个影响日期计算的字段(例如 OL、完成百分比、任务模式)。

标签: ms-project


【解决方案1】:

看起来我能够解决导入任务开始和完成日期的问题。

我认为Rachel Hettinger 怀疑,问题不在于我的 VBA,而在于从 Excel 传递到 MS Project 的数据。我正在使用 Power Query 将数据从其源中提取到 Excel 中。 Power Query 用空值“填充”空日期类型值。我将数据从 Power Query 传递到 Excel 作为日期类型值。这带来了空日期而不是空日期。然后,当我将所谓的空但实际上为空的日期值从 Excel 导入 MS Project 时,Project 在我的任务中添加了新的并更改了现有的日期。

现在我要做的是将 Power Query 中的日期值从日期类型值更改为文本类型值。同样在 Power Query 中,我将每个空日期条目转换为“”。这样,当我将数据从 Power Query 传递到 Excel 时,日期作为文本类型值传递,而空日期作为实际空日期带入 Excel。 (我将 Excel 中的日期列格式化为日期。)然后,当我随后将这些空值从 Excel 导入 MS Project 时,项目会正确处理它们。

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    相关资源
    最近更新 更多