基于条件范围从列表筛选或复制数据。
命名空间:  Microsoft.Office.Tools.Excel
程序集:  Microsoft.Office.Tools.Excel(在 Microsoft.Office.Tools.Excel.dll 中)
语法
声明
Function AdvancedFilter ( _
    Action As XlFilterAction, _
    CriteriaRange As Object, _
    CopyToRange As Object, _
    Unique As Object _
) As Object
Object AdvancedFilter(
    XlFilterAction Action,
    Object CriteriaRange,
    Object CopyToRange,
    Object Unique
)
参数
- Action
 类型:Microsoft.Office.Interop.Excel.XlFilterAction
 可以是下列 XlFilterAction 值之一:
 xlFilterCopy
 xlFilterInPlace
- CriteriaRange
 类型:System.Object
 条件范围。如果省略此参数,则没有任何条件。
- CopyToRange
 类型:System.Object
 如果 Action 为 xlFilterCopy,则为所复制行的目标范围。否则,将忽略此参数。
- Unique
 类型:System.Object
 如果仅筛选唯一的记录,则为 true;如果筛选所有符合条件的记录,则为 false。默认值为 false。
返回值
备注
如果初始选择内容为单个单元格,将使用该单元格的当前区域。
可选参数
有关可选参数的信息,请参见Office 解决方案中的可选参数。
示例
下面的代码示例设置 A1 至 A5 单元格范围内的整数值,然后使用 AdvancedFilter 方法筛选这些值并将筛选后的值复制到从 B1 开始的单元格范围。
此示例针对的是文档级自定义项。
    Private Sub ActivateAdvancedFilter()
        Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange _
            = Me.Controls.AddNamedRange(Me.Range("A1", "A5"), _
            "namedRange1")
        Me.Range("A1").Value2 = 10
        Me.Range("A2").Value2 = 10
        Me.Range("A3").Value2 = 20
        Me.Range("A4").Value2 = 10
        Me.Range("A5").Value2 = 30
        namedRange1.AdvancedFilter(Excel.XlFilterAction.xlFilterCopy, , _
            Me.Range("B1"), True)
    End Sub
private void ActivateAdvancedFilter()
{
    Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
        this.Controls.AddNamedRange(this.Range["A1", "A5"],
        "namedRange1");
    this.Range["A1", missing].Value2 = 10;
    this.Range["A2", missing].Value2 = 10;
    this.Range["A3", missing].Value2 = 20;
    this.Range["A4", missing].Value2 = 10;
    this.Range["A5", missing].Value2 = 30;
    namedRange1.AdvancedFilter(Excel.XlFilterAction.xlFilterCopy,
        missing, this.Range["B1", missing], true);
}
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。