WorksheetBase.AutoFilterMode (Propiedad)
Obtiene o establece un valor que indica si el filtrado está habilitado actualmente en la hoja de cálculo (es decir, si actualmente se muestran las flechas desplegables del filtro).
Espacio de nombres: Microsoft.Office.Tools.Excel
Ensamblado: Microsoft.Office.Tools.Excel.v4.0.Utilities (en Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)
Sintaxis
'Declaración
Public Property AutoFilterMode As Boolean
public bool AutoFilterMode { get; set; }
Valor de propiedad
Tipo: System.Boolean
true si el filtrado está habilitado actualmente en la hoja de cálculo; de lo contrario, false.
Excepciones
Excepción | Condición |
---|---|
COMException | Esta propiedad se establece en true. |
Comentarios
Puede establecer esta propiedad en false para deshabilitar el filtrado (es decir, quitar las flechas desplegables del filtro), pero no puede establecerla en true.Para habilitar el filtrado y crear una lista filtrada, use el método AutoFilter de un objeto Range o use el método AutoFilter de un objeto NamedRange.
Esta propiedad sólo indica si el filtrado está habilitado; no indica si está siendo filtrado cualquier dato.Para determinar si la hoja de cálculo está filtrando activamente los datos, use la propiedad FilterMode.
Ejemplos
El ejemplo de código siguiente crea una lista filtrada de frutas en un objeto Range y, a continuación, utiliza la propiedad AutoFilter para mostrar los criterios de filtro de la lista.A continuación, el ejemplo pide al usuario que desactive el filtro mediante la propiedad AutoFilterMode y, por último, utiliza la propiedad FilterMode para mostrar si la hoja de cálculo tiene una lista filtrada.
Se trata de un ejemplo para una personalización en el nivel del documento.
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");
}
}
Seguridad de .NET Framework
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.