Поделиться через


WorksheetBase.AutoFilterMode - свойство

Получает или задает значение, указывающее, включена ли фильтрация на листе в настоящий момент (т. е. указывает, отображаются ли стрелки раскрывающихся списков фильтрации в настоящий момент).

Пространство имен:  Microsoft.Office.Tools.Excel
Сборка:  Microsoft.Office.Tools.Excel.v4.0.Utilities (в Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)

Синтаксис

'Декларация
Public Property AutoFilterMode As Boolean
public bool AutoFilterMode { get; set; }

Значение свойства

Тип: System.Boolean
Значение true, если фильтрация на листе включена в настоящий момент; в противном случае — значение false.

Исключения

Исключение Условие
COMException

Этому свойству задано значение true.

Заметки

Чтобы отключить фильтрацию (скрыть стрелки раскрытия), этому свойству можно присвоить значение false, однако ему нельзя присвоить значение true.Чтобы включить фильтрацию и создать фильтрованный список, используйте метод AutoFilter объекта Range или метод AutoFilter объекта NamedRange.

Это свойство указывает только, включена ли фильтрация; оно не указывает состояние фильтрации данных.Чтобы определить, активно ли фильтрует данные рабочий лист, используйте свойство FilterMode.

Примеры

В следующем примере кода в диапазоне ячеек Range создается отфильтрованный список фруктов, после чего с использованием свойства AutoFilter определяется и отображается условие фильтрации списка.После этого в примере выдается запрос пользователю на отключение фильтра с помощью свойства AutoFilterMode, а в конце производится обращение к свойству FilterMode для вывода сведений о том, имеется ли на листе отфильтрованный список.

В этом примере демонстрируется настройка уровня документа.

Private Sub ActivateAutoFilter()
    Me.Range("A1").Value2 = "Fruits"
    Me.Range("A2").Value2 = "Banana"
    Me.Range("A3").Value2 = "Apple"
    Me.Range("A4").Value2 = "Banana"
    Me.Range("A5").Value2 = "Orange"
    Me.Range("A6").Value2 = "Apple"
    Me.Range("A7").Value2 = "Orange"

    Dim NamedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
        Me.Controls.AddNamedRange(Me.Range("A1", "A7"), "NamedRange1")

    NamedRange1.AutoFilter(1, "Apple", Excel.XlAutoFilterOperator.xlAnd, _
        VisibleDropDown:=True)

    MsgBox("The current criteria for the AutoFilter is: " & _
        Me.AutoFilter.Filters(1).Criteria1.ToString())

    If Me.AutoFilterMode Then
        If DialogResult.Yes = MessageBox.Show("Would you like to " & _
            "turn off the filter?", "Example", MessageBoxButtons.YesNo) Then
            Me.AutoFilterMode = False
        End If
    End If

    If Me.FilterMode Then
        MsgBox("The worksheet has a filtered list.")
    Else
        MsgBox("The worksheet does not have a filtered list")
    End If
End Sub
private void ActivateAutoFilter()
{
    this.Range["A1"].Value2 = "Fruits";
    this.Range["A2"].Value2 = "Banana";
    this.Range["A3"].Value2 = "Apple";
    this.Range["A4"].Value2 = "Banana";
    this.Range["A5"].Value2 = "Orange";
    this.Range["A6"].Value2 = "Apple";
    this.Range["A7"].Value2 = "Orange";

    Microsoft.Office.Tools.Excel.NamedRange NamedRange1 =
        this.Controls.AddNamedRange(this.Range["A1", "A7"],
        "NamedRange1");

    NamedRange1.AutoFilter(1, "Apple",
       Excel.XlAutoFilterOperator.xlAnd, true);

    MessageBox.Show("The current criteria for the AutoFilter is: " +
        this.AutoFilter.Filters[1].Criteria1.ToString());

    if (this.AutoFilterMode)
    {
        if (DialogResult.Yes == MessageBox.Show("Would you like to " +
            "turn off the filter?", "Example", MessageBoxButtons.YesNo))
        {
            this.AutoFilterMode = false;
        }
    }

    if (this.FilterMode)
    {
        MessageBox.Show("The worksheet has a filtered list.");
    }
    else
    {
        MessageBox.Show("The worksheet does not have a filtered list");
    }
}

Безопасность платформы .NET Framework

См. также

Ссылки

WorksheetBase Класс

Microsoft.Office.Tools.Excel - пространство имен