Proprietà WorksheetBase.AutoFilterMode
Ottiene o imposta un valore che indica se il filtraggio è attualmente abilitato nel foglio di lavoro, ovvero se sono attualmente visualizzate le frecce a discesa del filtro.
Spazio dei nomi: Microsoft.Office.Tools.Excel
Assembly: Microsoft.Office.Tools.Excel.v4.0.Utilities (in Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)
Sintassi
'Dichiarazione
Public Property AutoFilterMode As Boolean
public bool AutoFilterMode { get; set; }
Valore proprietà
Tipo: System.Boolean
true se il filtraggio è attualmente abilitato nel foglio di lavoro. In caso contrario false.
Eccezioni
Eccezione | Condizione |
---|---|
COMException | Questa proprietà è impostata su true. |
Note
È possibile impostare questa proprietà su false per disabilitare il filtro (cioè, per rimuovere le frecce a discesa del filtro). Non è tuttavia possibile impostarla su true.Per abilitare il filtro e creare un elenco filtrato, utilizzare il metodo AutoFilter di un oggetto Range o utilizzare il metodo AutoFilter di un oggetto NamedRange.
Questa proprietà indica solo se è abilitato il filtraggio; non indica se viene filtrato qualsiasi dato.Per determinare se nel foglio di lavoro è attiva la modalità di filtro dei dati, utilizzare la proprietà FilterMode.
Esempi
Nell'esempio di codice riportato di seguito viene creato un elenco filtrato di frutti in un oggetto Range. Viene quindi utilizzata la proprietà AutoFilter per visualizzare i criteri di filtro per l'elenco.Viene poi chiesto all'utente di disattivare il filtro utilizzando la proprietà AutoFilterMode e infine viene utilizzata la proprietà FilterMode per visualizzare se il foglio di lavoro contiene un elenco filtrato.
Questo esempio è valido per una personalizzazione a livello di 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");
}
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.