Usuário com melhor resposta
pesquisar um texto dentro de uma string

Pergunta
-
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
Respostas
-
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.
-
Veja se é isso que precisa:
Code SnippetSub Pesquisar()
Dim Intervalo As Range
Dim Célula As Range
Dim Texto As String
Dim Compara
Dim SeachStringSeachString = "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
Todas as Respostas
-
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.
-
Veja se é isso que precisa:
Code SnippetSub Pesquisar()
Dim Intervalo As Range
Dim Célula As Range
Dim Texto As String
Dim Compara
Dim SeachStringSeachString = "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
-
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 planend forend forend for
Valeu a ajuda
-