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
Versão do Microsoft Office
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
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;
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);
Continuar pesquisando desde que sejam existe correspondência.
While Not currentFind Is Nothing
while(currentFind != null)
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; }
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; }
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;
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
Noções básicas sobre parâmetros opcionais in Office Solutions