Compartilhar via


Método Range.FindNext (Excel)

Continua uma pesquisa iniciada com o método Find . Localiza a próxima célula que corresponde às mesmas condições e retorna um objeto Range que representa a célula. Isso não afeta a seleção ou a célula ativa.

Sintaxe

expressão. FindNext (Depois)

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

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
After Opcional Variant A célula depois da qual você deseja pesquisar. Isso corresponde à posição da célula ativa quando uma pesquisa é feita desde a interface do usuário. Esteja ciente de que After deve ser uma única célula no intervalo.
Lembre-se de que a pesquisa começa nessa célula; a célula especificada não será pesquisada até o método envolver novamente essa célula. Se você não especificar esse argumento, a pesquisa será iniciada após a célula no canto superior esquerdo do intervalo.

Valor de retorno

Intervalo

Comentários

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.

Exemplo

Este exemplo localiza todas as células no intervalo A1:A500 na planilha um que contém o valor 2 e altera todo o valor 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 nas quatro primeiras colunas que contêm um X constante e oculta a coluna que contém o X.

Sub Hide_Columns()

    'Excel objects.
    Dim m_wbBook As Workbook
    Dim m_wsSheet As Worksheet
    Dim m_rnCheck As Range
    Dim m_rnFind As Range
    Dim m_stAddress As String

    'Initialize the Excel objects.
    Set m_wbBook = ThisWorkbook
    Set m_wsSheet = m_wbBook.Worksheets("Sheet1")
    
    'Search the four columns for any constants.
    Set m_rnCheck = m_wsSheet.Range("A1:D1").SpecialCells(xlCellTypeConstants)
    
    'Retrieve all columns that contain an X. If there is at least one, begin the DO/WHILE loop.
    With m_rnCheck
        Set m_rnFind = .Find(What:="X")
        If Not m_rnFind Is Nothing Then
            m_stAddress = m_rnFind.Address
             
            'Hide the column, and then find the next X.
            Do
                m_rnFind.EntireColumn.Hidden = True
                Set m_rnFind = .FindNext(m_rnFind)
            Loop While Not m_rnFind Is Nothing And m_rnFind.Address <> m_stAddress
        End If
    End With

End Sub

Este exemplo localiza todas as células nas quatro primeiras colunas que contêm um X constante e desativa a coluna que contém o X.

Sub Unhide_Columns()
    'Excel objects.
    Dim m_wbBook As Workbook
    Dim m_wsSheet As Worksheet
    Dim m_rnCheck As Range
    Dim m_rnFind As Range
    Dim m_stAddress As String
    
    'Initialize the Excel objects.
    Set m_wbBook = ThisWorkbook
    Set m_wsSheet = m_wbBook.Worksheets("Sheet1")
    
    'Search the four columns for any constants.
    Set m_rnCheck = m_wsSheet.Range("A1:D1").SpecialCells(xlCellTypeConstants)
    
    'Retrieve all columns that contain X. If there is at least one, begin the DO/WHILE loop.
    With m_rnCheck
        Set m_rnFind = .Find(What:="X", LookIn:=xlFormulas)
        If Not m_rnFind Is Nothing Then
            m_stAddress = m_rnFind.Address
            
            'Unhide the column, and then find the next X.
            Do
                m_rnFind.EntireColumn.Hidden = False
                Set m_rnFind = .FindNext(m_rnFind)
            Loop While Not m_rnFind Is Nothing And m_rnFind.Address <> m_stAddress
        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.