WorksheetBase.AutoFilter Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает объект AutoFilter, предоставляющий сведения об отфильтрованных списках на листе, если фильтрация включена. Получает объект null, если фильтрация выключена.
public Microsoft.Office.Interop.Excel.AutoFilter AutoFilter { get; }
Значение свойства
Объект AutoFilter, предоставляющий сведения об отфильтрованных списках на листе, если фильтрация включена; в противном случае — значение null.
Примеры
В следующем примере кода создается отфильтрованный список фруктам в Range , а затем используется AutoFilter свойство для вывода условий фильтра для списка. Затем в примере пользователю предлагается отключить фильтр с помощью AutoFilterMode Свойства и, наконец, использует FilterMode свойство, чтобы показать, имеет ли лист отфильтрованный список.
Этот пример предназначен для настройки на уровне документа.
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");
}
}
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
Комментарии
Чтобы программно включить фильтрацию, используйте AutoFilter метод Range объекта или AutoFilter метода NamedRange объекта.