none
pesquisar um texto dentro de uma string

    Question

  • Meu problema é que tenho uma planilha com 10000 linhas com descrições diversas e tenho que pesquisar uma palavra dentro dessa string e não ta dando certo, não sei se pode ser o comando ou o like ou sei la

    ex.

    string texto="tem dia que de noite é faca"

    tenho que pesquisar a palavra noite em cada uma das 10000 linhas e cada linha é jogada dentro da string.



    fico meio difícil de entender mais acho que se eu tentar explicar mais ai vai piorar tudo
    Friday, July 25, 2008 1:08 AM

Answers

  • Olá,

     

    você pode fazer um loop pelas linhas e usar a função InStr para verificar se a palavra está contida na string. Se o resultado for maior que 0, então a palavra está contida no texto. Exemplo:

     

    InStr(1,"tem dia que a noite é faca", "noite",vbTextCompare)

     

    Esta função retornará 15, pois "noite" aparece a partir da 15a posição do texto.

     

    Veja também que você pode resolver na própria planilha, sem precisar de código VBA, pois o Excel tem a função "Procurar" (ou "Find", em inglês), que faz a mesma coisa da função InStr que descrevi acima. 

     

    Friday, July 25, 2008 4:54 AM
    Moderator
  • Veja se é isso que precisa:

    Code Snippet

    Sub Pesquisar()
    Dim Intervalo As Range
    Dim Célula As Range
    Dim Texto As String
    Dim Compara
    Dim SeachString

    SeachString = "noite"

    Set Intervalo = [A1:A10]
    For Each Célula In Intervalo
    Compara = Célula Like "*" & SeachString & "*"
    If Compara Then
    Texto = Texto & "-" & Célula.Value
    End If
    Next Célula
    End Sub

     

     


    [ ]s

     

    Friday, July 25, 2008 11:41 AM

All replies

  • Olá,

     

    você pode fazer um loop pelas linhas e usar a função InStr para verificar se a palavra está contida na string. Se o resultado for maior que 0, então a palavra está contida no texto. Exemplo:

     

    InStr(1,"tem dia que a noite é faca", "noite",vbTextCompare)

     

    Esta função retornará 15, pois "noite" aparece a partir da 15a posição do texto.

     

    Veja também que você pode resolver na própria planilha, sem precisar de código VBA, pois o Excel tem a função "Procurar" (ou "Find", em inglês), que faz a mesma coisa da função InStr que descrevi acima. 

     

    Friday, July 25, 2008 4:54 AM
    Moderator
  • Veja se é isso que precisa:

    Code Snippet

    Sub Pesquisar()
    Dim Intervalo As Range
    Dim Célula As Range
    Dim Texto As String
    Dim Compara
    Dim SeachString

    SeachString = "noite"

    Set Intervalo = [A1:A10]
    For Each Célula In Intervalo
    Compara = Célula Like "*" & SeachString & "*"
    If Compara Then
    Texto = Texto & "-" & Célula.Value
    End If
    Next Célula
    End Sub

     

     


    [ ]s

     

    Friday, July 25, 2008 11:41 AM
  • Os dois comandos funcionaram muito bem . . .

    o find não daria certo pois são 7 planilhas média de 10000 linhas por planilha e 23 palavras diferentes para pesquisar em cada uma das linhas.

    for planilhas
    for pesquisa
    for linhas
    comaparação e copia da linha para outra plan
    end for
    end for
    end for


    Valeu a ajuda


    Friday, July 25, 2008 9:07 PM
  • Não tem de quê.

    Não esqueça de marcar a resposta à tua pergunta.

    [ ]s

    Saturday, July 26, 2008 1:49 AM