Objeto AutoFilter (Excel)
Representa a filtragem automática para a planilha especificada.
Observação
Quando você usar AutoFilter com datas, o formato deverá ser consistente com os separadores de data em inglês ("/") em vez de com as configurações locais ("."). Uma data válida seria "2/2/2007", enquanto "2.2.2007" é inválida.
Observação
Trabalhar com objetos (por exemplo, o objeto Interior ) requer adicionar uma referência a um objeto. Você encontrará mais informações sobre como atribuir uma referência de objeto a uma variável ou propriedade na instrução Definir .
Exemplo
Use a propriedade AutoFilter do objeto Worksheet para retornar o objeto AutoFilter . Use a propriedade Filters para retornar uma coleção de filtros de coluna individuais. Use a propriedade Range para retornar o objeto Range que representa todo o intervalo filtrado.
O exemplo a seguir armazena os critérios de endereço e filtragem para a filtragem atual e, em seguida, aplica novos 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 criar um objeto AutoFilter para uma planilha, você deve ativar o preenchimento automático para um intervalo na planilha manualmente ou usando o método AutoFilter do objeto Range . O exemplo a seguir usa os valores armazenados em variáveis no nível do módulo no exemplo anterior para restaurar a filtragem automática original para a planilha Equipe.
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
Propriedades
Confira também
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.