Application.FilterEdit 方法 (Project)
创建、编辑或复制筛选器。
语法
表达式。FilterEdit (Name、 TaskFilter、 Create、 OverwriteExisting、 Parenthesis、 NewName、 FieldName、 NewFieldName、 Test、 Value、 Operation、 ShowInMenu、 ShowSummaryTasks)
expression:表示 Application 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
Name | 必需 | String | 要编辑、创建或复制的筛选器的名称。 |
TaskFilter | 必需 | Boolean | 如此 如果指定名称的筛选器包含任务信息。 假 如果筛选器包含资源信息。 |
Create | 可选 | Boolean | 如此 如果创建新的筛选器。 新的筛选器副本的名称与指定的筛选器,并给出新名称与指定的名称。 如果新名称是空的新的筛选器提供由名称指定的名称。 默认值为 False 。 |
OverwriteExisting | 可选 | Boolean | 如此 如果新的筛选器将覆盖现有的筛选器。 默认值为 False 。 |
Parenthesis | 可选 | Boolean | 如此 如果由字段名、 测试和价值的标准相对于其他条件 (AND b) 方式计算作为附加说明 AND 或 OR 子句 (与操作指定的值) 或 c。 |
NewName | 可选 | 字符串 | 使用“创建名称 (”指定的筛选器的新名称) 为 False ,或者新筛选器的名称 (Create 为 True) 。 如果新名称为空,并且创建为 假 ,名称与指定的筛选器将保留其当前名称。 默认值为 Empty。 |
FieldName | 可选 | String | 要更改的域名称。 |
NewFieldName | 可选 | String | 由 FieldName 指定的域的新名称。 |
Test | 必需 | String | 在 FieldName 和 Value 之间进行的比较类型,可作为筛选器的选定条件。 可以是 比较字符串之一。 |
值 | 可选 | 字符串 | 要与 FieldName 指定的域值进行比较的值。 |
操作 | 可选 | 字符串 | 由 FieldName、Test 和 Value 建立的条件与筛选器中其他条件相关联的方式。 Operation 参数可以设置为"And"或"Or"。 |
ShowInMenu | 可选 | Boolean | 如此 ,如果筛选器显示在 过滤器下拉列表。 默认值为 False。 注意 若要显示筛选器列表,请在功能区上的“ 视图 ”选项卡上,单击“ 筛选器” 下拉列表。 |
ShowSummaryTasks | 可选 | Boolean | 如此 如果显示筛选出的任务的摘要任务。 默认值为 False。 |
比较字符串
比较字符串 | Description |
---|---|
"equals" | FieldName 值等于 Value。 |
"does not equal" | FieldName 值不等于 Value。 |
"is greater than" | FieldName 值大于 Value。 |
"is greater than or equal to" | FieldName 值大于或等于 Value。 |
"is less than" | FieldName 值小于 Value。 |
"is less than or equal to" | FieldName 值小于或等于 Value。 |
"is within" | FieldName 值在 Value 之内。 |
"is not within" | FieldName 值不在 Value 之内。 |
"contains" | FieldName 包含 Value。 |
"does not contain" | FieldName 不包含 Value。 |
"contains exactly" | FieldName 正好包含 Value。 |
返回值
Boolean
示例
以下示例创建一个筛选器 (如果不存在) 具有最高优先级的任务,则创建筛选器,然后应用筛选器。
Sub CreateAndApplyHighestPriorityFilter()
Dim TaskFilter As Variant ' Index for For Each loop.
Dim Found As Boolean ' Whether or not the filter exists.
Found = False ' Assume the filter does not exist.
' Look for filter.
For Each TaskFilter In ActiveProject.TaskFilterList
If TaskFilter = "Highest Priority" Then
Found = True
Exit For
End If
Next TaskFilter
' If filter doesn't exist, create it.
If Not Found Then FilterEdit Name:="Highest Priority", _
Create:=True, TaskFilter:=True, FieldName:="Priority", _
Test:="equals", Value:="Highest"
FilterApply "Highest Priority"
End Sub
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。