Como: Pesquisar para texto em intervalos de planilha

Se aplica a

As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office.

Tipo de Projeto

  • Projetos de nível de documento

  • Projetos de nível de aplicativo

Versão do Microsoft Office

  • O Excel 2003

  • O Excel 2007

For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto.

O método Find do objeto Microsoft.Office.Interop.Excel.Range permite que você Pesquisarr texto dentro do intervalo.Esse texto também pode ser as cadeias de erro que podem aparecer em uma célula da planilha, como #NULL! ou #VALUE!.Para obter mais informações sobre seqüências de erro, consulte valores de erro de célula.

O exemplo a seguir procura um intervalo nomeado Fruits e modifica a fonte de células que contêm a palavra "maçãs".Esse procedimento também usa o método de FindNext, que usa o anteriormente definido pesquisar configurações para repetir a pesquisa.Especifique a célula após o qual pesquisar e o método FindNext trata o restante.

Observação:

O Quebra de Pesquisarr do método FindNext Voltar para o início do intervalo de Pesquisarr após ele ter atingido o fim do intervalo.Seu código deve garantir que Pesquisarrr não se dispõe ao redor em um loop infinito.O procedimento de exemplo mostra uma maneira de lidar com isso usando a propriedade Address.

ParPesquisarrr texto em um intervalo de planilha

  1. Declare variáveis para controlar o intervalo inteiro, o primeiro intervalo encontrado e o intervalo encontrado atual.

    Dim currentFind As Excel.Range = Nothing
    Dim firstFind As Excel.Range = Nothing
    
    Excel.Range currentFind = null; 
    Excel.Range firstFind = null; 
    
  2. Procure a Primeiro correspondência, especificar Tudo parâmetros, exceto a célula para pesquisar depois.

    currentFind = Fruits.Find("apples", , _
        Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, _
        Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, False)
    
    currentFind = Fruits.Find("apples", missing,
        Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, 
        Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false,
        missing, missing); 
    
  3. Continuar pesquisando desde que sejam existe correspondência.

    While Not currentFind Is Nothing
    
    while(currentFind != null) 
    
  4. Compare o primeiro intervalo encontrado (firstFind) para Nothing.Se firstFind não contiver nenhum valor, o código armazena fora do intervalo encontrado (currentFind).

    If firstFind Is Nothing Then
        firstFind = currentFind
    
    if (firstFind == null)
    {
        firstFind = currentFind; 
    }
    
  5. Sair o loop se o endereço do intervalo encontrado corresponder o endereço do primeiro intervalo encontrado.

    ElseIf currentFind.Address = firstFind.Address Then
        Exit While
    End If
    
    else if (currentFind.get_Address(missing, missing, Excel.XlReferenceStyle.xlA1, missing, missing)
          == firstFind.get_Address(missing, missing, Excel.XlReferenceStyle.xlA1, missing, missing))
    {
        break;
    }
    
  6. Definir a aparência do intervalo encontrado.

    With currentFind.Font
        .Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
        .Bold = True
    End With
    
    currentFind.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
    currentFind.Font.Bold = true; 
    
  7. Execute outrPesquisarrr.

    currentFind = Fruits.FindNext(currentFind)
    
    currentFind = Fruits.FindNext(currentFind); 
    

O exemplo a seguir mostra Concluir método.

Exemplo

Private Sub DemoFind()
    Dim currentFind As Excel.Range = Nothing
    Dim firstFind As Excel.Range = Nothing

    Dim Fruits As Excel.Range = Me.Application.Range("A1", "B2")
    ' You should specify all these parameters every time you call this method, 
    ' since they can be overridden in the user interface.
    currentFind = Fruits.Find("apples", , _
        Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, _
        Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, False)

    While Not currentFind Is Nothing

        ' Keep track of the first range you find.
        If firstFind Is Nothing Then
            firstFind = currentFind

        ' If you didn't move to a new range, you are done.
        ElseIf currentFind.Address = firstFind.Address Then
            Exit While
        End If

        With currentFind.Font
            .Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
            .Bold = True
        End With

        currentFind = Fruits.FindNext(currentFind)
    End While
End Sub
private void DemoFind() 
{
    Excel.Range currentFind = null; 
    Excel.Range firstFind = null; 

    Excel.Range Fruits = Application.get_Range("A1", "B3");
    // You should specify all these parameters every time you call this method,
    // since they can be overridden in the user interface. 
    currentFind = Fruits.Find("apples", missing,
        Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, 
        Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false,
        missing, missing); 

    while(currentFind != null) 
    { 
        // Keep track of the first range you find. 
        if (firstFind == null)
        {
            firstFind = currentFind; 
        }

        // If you didn't move to a new range, you are done.
        else if (currentFind.get_Address(missing, missing, Excel.XlReferenceStyle.xlA1, missing, missing)
              == firstFind.get_Address(missing, missing, Excel.XlReferenceStyle.xlA1, missing, missing))
        {
            break;
        }

        currentFind.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
        currentFind.Font.Bold = true; 

        currentFind = Fruits.FindNext(currentFind); 
    }
}

Consulte também

Tarefas

Como: Aplicar estilos a intervalos em pastas de trabalho

Como: Se referir a intervalos de planilha no código

Conceitos

Trabalhando com intervalos

Noções básicas sobre parâmetros opcionais in Office Solutions