首页 > 解决方案 > 运行时错误“1004”:“活动”字段不存在

问题描述

我在用户的 PC 上收到此错误。他们在 Windows 7 上使用 Project 2013。在我们自己的测试机器上,在 Windows 10 上使用 Project 2013,在 Windows 10 上使用 Project 2016),我们没有看到相同的错误。

错误到处都是,但FilterEdit在这里可以找到一个示例:

Sub STAT_Leads_Preds()
    FilterEdit Name:="STAT_Leads_Preds", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Predecessors", Test:="contains", Value:="-", ShowInMenu:=False, ShowSummaryTasks:=False
    FilterEdit Name:="STAT_Leads_Preds", TaskFilter:=True, FieldName:="", NewFieldName:="Actual Finish", Test:="equals", Value:="NA", Operation:="And", ShowSummaryTasks:=False
    If Not pActive Then
        FilterEdit Name:="STAT_Leads_Preds", TaskFilter:=True, FieldName:="", NewFieldName:="Active", Test:="equals", Value:="Yes", Operation:="And", ShowSummaryTasks:=False
    Else
    End If
End Sub

目前尚不清楚为什么会出现此消息。“主动”实际上是一个领域。而且,就像我说的,我们没有在测试机器上看到这个问题。

作为参考,以下是错误的样子: 在此处输入图像描述

标签: vbams-project

解决方案


看起来项目标准没有“活动”字段。我们的解决方案涉及使用 Application.Edition 检查软件的版本,它可以是以下两个值之一pjEditionProfessionalpjEditionStandard

以下是代码最终的样子:

Sub STAT_Leads_Preds()
    FilterEdit Name:="STAT_Leads_Preds", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Predecessors", Test:="contains", Value:="-", ShowInMenu:=False, ShowSummaryTasks:=False
    FilterEdit Name:="STAT_Leads_Preds", TaskFilter:=True, FieldName:="", NewFieldName:="Actual Finish", Test:="equals", Value:="NA", Operation:="And", ShowSummaryTasks:=False
    If Not pActive And Application.Edition = pjEditionProfessional Then
        FilterEdit Name:="STAT_Leads_Preds", TaskFilter:=True, FieldName:="", NewFieldName:="Active", Test:="equals", Value:="Yes", Operation:="And", ShowSummaryTasks:=False
    Else
    End If
End Sub

推荐阅读