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.