NamedRange.Find (Método)

Busca información específica en el control NamedRange y devuelve un objeto Microsoft.Office.Interop.Excel.Range que representa la primera celda en la que se encuentra dicha información.

Espacio de nombres:  Microsoft.Office.Tools.Excel
Ensamblado:  Microsoft.Office.Tools.Excel (en Microsoft.Office.Tools.Excel.dll)

Sintaxis

'Declaración
Function Find ( _
    What As Object, _
    After As Object, _
    LookIn As Object, _
    LookAt As Object, _
    SearchOrder As Object, _
    SearchDirection As XlSearchDirection, _
    MatchCase As Object, _
    MatchByte As Object, _
    SearchFormat As Object _
) As Range
Range Find(
    Object What,
    Object After,
    Object LookIn,
    Object LookAt,
    Object SearchOrder,
    XlSearchDirection SearchDirection,
    Object MatchCase,
    Object MatchByte,
    Object SearchFormat
)

Parámetros

  • What
    Tipo: System.Object
    Datos que se van a buscar.Puede ser una cadena o cualquier tipo de datos de Microsoft Office Excel.
  • After
    Tipo: System.Object
    Celda situada a continuación de la que se desea que comience la búsqueda.Corresponde a la posición de la celda activa cuando se realiza una búsqueda desde la interfaz de usuario.Observe que After debe ser una sola celda del rango.Recuerde que la búsqueda comienza a continuación de esta celda; no se busca en la celda especificada hasta que el método vuelve a buscar delante de ella.Si no especifica este argumento, la búsqueda se inicia a continuación de la celda situada en la esquina superior izquierda del rango.
  • MatchCase
    Tipo: System.Object
    Es true para que en la búsqueda se distinga mayúsculas de minúsculas.El valor predeterminado es false.
  • MatchByte
    Tipo: System.Object
    Solamente se utiliza si ha seleccionado o instalado la compatibilidad con idiomas de doble byte.true si las coincidencias con caracteres de doble byte sólo deben ser con caracteres de doble byte; false si las coincidencias con caracteres de doble byte van a ser con equivalentes de un solo byte.

Valor devuelto

Tipo: Microsoft.Office.Interop.Excel.Range
Objeto Microsoft.Office.Interop.Excel.Range que representa la primera celda en la que se encuentra la información.

Comentarios

Este método devuelve nullreferencia null (Nothing en Visual Basic) si no se encuentra ninguna coincidencia.

Este método no afecta a la selección ni a la celda activa.

La configuración para LookIn, LookAt, SearchOrder y MatchByte se guarda cada vez que se utiliza este método. Si no especifica valores para estos argumentos, la próxima vez que realice una llamada al método se utilizarán los valores guardados. Al establecer estos argumentos, se cambia la configuración en el cuadro de diálogo Buscar y, al cambiar la configuración en el cuadro de diálogo Buscar, se cambian los valores guardados que se utilizan si omite los argumentos. Para evitar problemas, establezca explícitamente estos argumentos cada vez que utilice este método.

Puede utilizar los métodos FindNext y FindPrevious para repetir la búsqueda.

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 produce este salto, guarde la dirección de la primera celda encontrada y, a continuación, pruebe cada dirección de celda sucesiva encontrada con esta dirección guardada.

Parámetros opcionales

Para obtener información sobre parámetros opcionales, vea Parámetros opcionales en las soluciones de Office.

Ejemplos

En el ejemplo de código siguiente se utiliza el método Find para encontrar la primera celda con el valor Seashell de un control NamedRange. Luego el ejemplo utiliza los métodos FindNext y FindPrevious para buscar la siguiente celda con el valor Seashell y, a continuación, volver a la celda original. Por último, el ejemplo utiliza el método Cut para cortar el contenido de la primera celda con el valor Seashell y pegarlo en la celda B1.

Se trata de un ejemplo para una personalización en el nivel del documento.

    Private Sub FindValue()
        Me.Range("A1").Value2 = "Barnacle"
        Me.Range("A2").Value2 = "Seashell"
        Me.Range("A3").Value2 = "Star Fish"
        Me.Range("A4").Value2 = "Seashell"
        Me.Range("A5").Value2 = "Clam Shell"

        Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange _
            = Me.Controls.AddNamedRange(Me.Range("A1", "A5"), _
            "namedRange1")

        ' Find the first occurrence of "Seashell".
        Dim Range1 As Excel.Range = namedRange1.Find("Seashell", , , _
            Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns, _
            Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext, _
            False, False, )

        ' Find the next occurrence of "Seashell".
        Range1 = namedRange1.FindNext(Range1)

        ' Return to the first occurrence of "Seashell".
        Range1 = namedRange1.FindPrevious(Range1)

        ' Cut the range with the first "Seashell" and copy it to cell B1.
        Dim namedRange2 As Microsoft.Office.Tools.Excel.NamedRange _
            = Me.Controls.AddNamedRange(Range1, "namedRange2")
        namedRange2.Cut(Me.Range("B1"))
    End Sub

private void FindValue()
{
    this.Range["A1", missing].Value2 = "Barnacle";
    this.Range["A2", missing].Value2 = "Seashell";
    this.Range["A3", missing].Value2 = "Star Fish";
    this.Range["A4", missing].Value2 = "Seashell";
    this.Range["A5", missing].Value2 = "Clam Shell";

    Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
        this.Controls.AddNamedRange(this.Range["A1", "A5"],
        "namedRange1");

    // Find the first occurrence of "Seashell".
    Excel.Range Range1 = namedRange1.Find("Seashell", missing, missing,
        Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns,
        Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext,
        false, false, missing);

    // Find the next occurrence of "Seashell".
    Range1 = namedRange1.FindNext(Range1);

    // Return to the first occurrence of "Seashell".
    Range1 = namedRange1.FindPrevious(Range1);

    // Cut the range with the first "Seashell" and copy it to cell B1.
    Microsoft.Office.Tools.Excel.NamedRange namedRange2 =
        this.Controls.AddNamedRange(Range1, "namedRange2");
    namedRange2.Cut(this.Range["B1", missing]);
}

Seguridad de .NET Framework

Vea también

Referencia

NamedRange Interfaz

Microsoft.Office.Tools.Excel (Espacio de nombres)