Método Range.Find (Excel)

Localiza informações específicas em um intervalo.

Observação

Interessado em desenvolver soluções que ampliem a experiência do Office em várias plataformas? Confira o novo modelo de Suplementos do Office. Os suplementos do Office ocupam um pequeno espaço em comparação com os suplementos e as soluções do VSTO, e você pode criá-los usando quase qualquer tecnologia de programação da Web, como o HTML5, JavaScript, CSS3 e XML.

Sintaxe

expressão. Encontrar (O que, Após, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

expressão Uma variável que representa um objeto de Intervalo.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
What Obrigatório Variant A data a ser pesquisada. Pode ser uma cadeia de caracteres ou qualquer tipo de dados do Microsoft Excel.
After Opcional Variant A célula após a qual você deseja que a pesquisa seja iniciada. Isso corresponde à posição da célula ativa quando uma pesquisa é feita desde a interface do usuário.

Observe que After deve ser uma única célula no intervalo. Lembre-se de que a pesquisa começa após essa célula. A célula especificada não é pesquisada até que o método retorne a essa célula.

Se você não especificar esse argumento, a pesquisa começará após a célula no canto superior esquerdo do intervalo.
LookIn Opcional Variant Pode ser uma das seguintes XlFindLookIn: xlFormulas, xlValues, xlComments ou xlCommentsThreaded.
LookAt Opcional Variant Pode ser uma das seguintes XlLookAt constantes: xlWhole ou xlPart.
SearchOrder Opcional Variant Pode ser uma das seguintes XlSearchOrder constantes: xlByRows ou xlByColumns.
SearchDirection Opcional Variant Pode ser uma das seguintes constantes XlSearchDirection: xlNext ou xlPrevious.
MatchCase Opcional Variantes True para tornar fazer com que a pesquisa passe a diferenciar maiúsculas de minúsculas. O valor padrão é False.
MatchByte Opcional Variant Usada somente se você tiver selecionado ou instalado o suporte a idiomas de byte duplo. True para que os caracteres de byte duplo correspondam apenas aos caracteres de byte duplo. False para que os caracteres de byte duplo correspondam aos seus equivalentes de byte único.
SearchFormat Opcional Variant O formato da pesquisa.

Valor de retorno

Um objeto Range que representa a primeira célula onde essas informações são encontradas.

Comentários

Esse método retornará Nothing se nenhuma correspondência for encontrada. O método Find não afeta a seleção ou a célula ativa.

As configurações para LookIn, LookAt, SearchOrder e MatchByte são salvas sempre que você usa esse método. Se você não especificar valores para esses argumentos na próxima vez que chamar o método, os valores salvos serão usados. Definir esses argumentos alterará as configurações na caixa de diálogo Find e, ao alterar as configurações na caixa de diálogo Find, os valores salvos que são usados se você omitir os argumentos serão alterados. Para evitar problemas, defina estes argumentos explicitamente sempre que usar este método.

Use os métodos FindNext e FindPrevious para repetir a pesquisa.

Quando a pesquisa atingir o final do intervalo de pesquisa especificado, voltará ao início do intervalo. Para parar uma pesquisa quando isso acontecer, salve o endereço da primeira célula encontrada e então teste cada endereço de célula sucessivo encontrado em relação a esse endereço salvo.

Para localizar células que correspondem padrões mais complicados, use uma instrução For Each...Next com o operador Like. Por exemplo, o código a seguir pesquisa todas as células no intervalo A1:C5 que usam uma fonte cujo nome começa com as letras Cour. Quando o Microsoft Excel encontra uma correspondência, ele altera a fonte para Times New Roman.

For Each c In [A1:C5] If c.Font.Name Like "Cour*" Then c.Font.Name = "Times New Roman" End If Next`

Exemplos

Este exemplo localiza todas as células no intervalo A1:A500 na planilha um, que contém o valor 2 e altera o valor inteiro da célula para 5. Ou seja, os valores 1234 e 99299 contêm 2 e os valores das duas células se tornarão 5.

Sub FindValue()
    
    Dim c As Range
    Dim firstAddress As String

    With Worksheets(1).Range("A1:A500") 
        Set c = .Find(2, lookin:=xlValues) 
        If Not c Is Nothing Then 
            firstAddress = c.Address 
            Do 
                c.Value = 5 
                Set c = .FindNext(c) 
            Loop While Not c Is Nothing
        End If 
    End With
    
End Sub

Este exemplo localiza todas as células no intervalo A1:A500 na planilha um, que contém a subcadeia “abc” e substitui “abc” por “xyz”.

Sub FindString()

    Dim c As Range
    Dim firstAddress As String

    With Worksheets(1).Range("A1:A500")
        Set c = .Find("abc", LookIn:=xlValues)
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                c.Value = Replace(c.Value, "abc", "xyz")
                Set c = .FindNext(c)
            Loop While Not c Is Nothing
        End If
    End With

End Sub

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.