Método Range.FindNext (Excel)Range.FindNext method (Excel)

Sigue una búsqueda iniciada con el método Find .Continues a search that was begun with the Find method. Busca la siguiente celda que coincida con las mismas condiciones y devuelve un objeto Range que representa dicha celda.Finds the next cell that matches those same conditions and returns a Range object that represents that cell. Esto no afecta a la selección ni a la celda activa.This does not affect the selection or the active cell.

SintaxisSyntax

expresión. BuscarSiguiente (Después)expression.FindNext (After)

expresión Variable que representa un objeto Range.expression A variable that represents a Range object.

ParametersParameters

NombreName Obligatorio/opcionalRequired/Optional Tipo de datosData type DescripciónDescription
AfterAfter OpcionalOptional VariantVariant La celda después de la que quiere que se inicie la búsqueda.The cell after which you want to search. Se corresponde a la posición de la celda activa cuando se realiza una búsqueda desde la interfaz de usuario.This corresponds to the position of the active cell when a search is done from the user interface. Tenga en cuenta que After debe ser una sola celda del rango.Be aware that After must be a single cell in the range.

Recuerde que la búsqueda comienza después de esta celda; no se buscará en la celda especificada hasta que el método regrese a esta celda.Remember that the search begins after this cell; the specified cell is not searched until the method wraps back around to this cell. Si no especifica este argumento, la búsqueda empieza después de la celda en la esquina superior izquierda del rango.If this argument is not specified, the search starts after the cell in the upper-left corner of the range.

Valor devueltoReturn value

RangoRange

ObservacionesRemarks

Cuando la búsqueda llega al final del rango de búsqueda especificado, vuelve al principio del rango.When the search reaches the end of the specified search range, it wraps around to the beginning of the range. Para detener una búsqueda cuando se produzca esta situación, guarde la dirección de la primera celda que se encuentre y, después, pruebe la dirección de cada celda sucesiva que se haya encontrado con esta dirección guardada.To stop a search when this wraparound occurs, save the address of the first found cell, and then test each successive found-cell address against this saved address.

EjemploExample

En este ejemplo se buscan todas las celdas del rango a1: A500 que contengan el valor 2 y se cambia el valor a 5.This example finds all cells in the range A1:A500 that contain the value 2 and changes their value to 5.

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)
        If c is Nothing Then
            GoTo DoneFinding
        End If
        Loop While c.Address <> firstAddress
      End If
      DoneFinding:
End With

En este ejemplo se buscan todas las celdas de las primeras cuatro columnas que contengan una constante X y se oculta la columna que contiene la X.This example finds all the cells in the first four columns that contain a constant X, and hides the column that contains the 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

En este ejemplo se buscan todas las celdas de las primeras cuatro columnas que contengan una constante X y se muestran las columnas que contengan la X.This example finds all the cells in the first four columns that contain a constant X, and unhides the column that contains the 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

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? 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.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.