Objeto AutoFilter (Excel)
Representa el autofiltro de la hoja de cálculo especificada.
Nota:
Cuando use AutoFilter con fechas, el formato debe ser coherente con los separadores de fechas en inglés ("/") en lugar de con la configuración local ("."). "2/2/2007" sería una fecha válida sería, pero "2.2.2007" no.
Nota:
Trabajar con objetos (por ejemplo, el objeto Interior ) requiere agregar una referencia a un objeto . Encontrará más información sobre cómo asignar una referencia de objeto a una variable o propiedad en la instrucción Set .
Ejemplo:
Use la propiedad AutoFilter del objeto Worksheet para devolver el objeto AutoFilter . Use la propiedad Filters para devolver una colección de filtros de columnas individuales. Use la propiedad Range para devolver el objeto Range que representa todo el rango filtrado.
En el ejemplo siguiente se almacenan los criterios de dirección y filtrado para el filtrado actual y, a continuación, se aplican nuevos filtros.
Dim w As Worksheet
Dim filterArray()
Dim currentFiltRange As String
Sub ChangeFilters()
Set w = Worksheets("Crew")
With w.AutoFilter
currentFiltRange = .Range.Address
With .Filters
ReDim filterArray(1 To .Count, 1 To 3)
For f = 1 To .Count
With .Item(f)
If .On Then
filterArray(f, 1) = .Criteria1
If .Operator Then
filterArray(f, 2) = .Operator
filterArray(f, 3) = .Criteria2
End If
End If
End With
Next
End With
End With
w.AutoFilterMode = False
w.Range("A1").AutoFilter field:=1, Criteria1:="S"
End Sub
Para crear un objeto AutoFilter para una hoja de cálculo, debe activar el autofiltro para un rango de la hoja de cálculo, ya sea manualmente o mediante el método AutoFilter del objeto Range . En el siguiente ejemplo se usan los valores almacenados en variables de módulos del ejemplo anterior para restablecer el autofiltro inicial en la hoja de cálculo Crew.
Sub RestoreFilters()
Set w = Worksheets("Crew")
w.AutoFilterMode = False
For col = 1 To UBound(filterArray(), 1)
If Not IsEmpty(filterArray(col, 1)) Then
If filterArray(col, 2) Then
w.Range(currentFiltRange).AutoFilter field:=col, _
Criteria1:=filterArray(col, 1), _
Operator:=filterArray(col, 2), _
Criteria2:=filterArray(col, 3)
Else
w.Range(currentFiltRange).AutoFilter field:=col, _
Criteria1:=filterArray(col, 1)
End If
End If
Next
End Sub
Métodos
Propiedades
Vea también
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.