Método Range.FindNext (Excel)
Continúa una búsqueda iniciada con el método Find . Busca la siguiente celda que coincida con las mismas condiciones y devuelve un objeto Range que representa dicha celda. Esto no afecta a la selección ni a la celda activa.
Sintaxis
expresión. FindNext (después)
expresión Variable que representa un objeto Range.
Parameters
Nombre | Obligatorio/opcional | Tipo de datos | Descripción |
---|---|---|---|
After | Opcional | Variant | La celda después de la que quiere que se inicie la búsqueda. Se corresponde a la posición de la celda activa cuando se realiza una búsqueda desde la interfaz de usuario. Tenga en cuenta que After debe ser una sola celda del intervalo. |
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. Si no especifica este argumento, la búsqueda empieza después de la celda en la esquina superior izquierda del rango. |
Valor devuelto
Rango
Observaciones
Cuando la búsqueda llega al final del rango de búsqueda especificado, vuelve al principio del rango. 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.
Ejemplo:
En este ejemplo se buscan todas las celdas del rango A1:A500 de la hoja de cálculo uno que contiene el valor 2 y se cambia todo el valor de celda a 5. Es decir, los dos valores 1234 y 99299 contienen un 2, y ambos valores de celda se convertirán en 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
En este ejemplo se buscan todas las celdas de las cuatro primeras columnas que contienen una constante X y se oculta la columna que contiene la 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 cuatro primeras columnas que contienen una constante X y se muestra la columna que contiene la 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 comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? 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.