Ir para conteúdo
Fórum Script Brasil
  • 0

Funções


Guest Isis

Pergunta

Pessoal,

eu estou com uma dúvida... se em uma célula eu tenho o seguinte conteudo:

Exemplo Dúvida 523547852

e eu quero que em uma outra célula apareçam somente os números, ou seja, que apareça como resultado 523547852.

Não sei se existe uma função que consiga distinguir números de letras.

Sei que existe a função direira que poderia resolver o problema mas nem todas as células possuem o número no final, algumas estão assim: Exemplo 5243351 Dúvida.

Se alguém souber alguma forma de sanar esta minha dúvida serei muito grata.

Isis

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Use a função Split() para dividir o texto pelo caracter de espaço. Depois verifique qual deles é um valor maior que 0. Exemplo:

s = "Exemplo Dúvida 523547852"
elementos = split(s, " ")
for each elemento in elementos
  if val(elemento)>0 then
    msgbox elemento & " é um número."
  else
    msgbox elemento & " é um texto."
  endif
next elemento

Certo? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Graymalkin, tava lendo sua resposta, mas não entendi:

1 - Como funciona a função split?

Entendi q você divide a variável s onde ele encontrar o espaço. Mas elementos é uma variável string? Que valor ela recebe, o q está antes do espaço? E se eu quiser pegar o q está depois?

2 - O q é a variável elemento? Como funciona esse for q c fez?

Link para o comentário
Compartilhar em outros sites

  • 0

Split, como o nome sugere, divide algo. Nesse caso, divide uma string em um vetor de variantes (variante, ou "variant" no original, é o tipo de dados do VB no qual você pode comportar quaisquer dos outros tipos [string, integer, long, etc.]).

No caso...

s = "Exemplo Dúvida 523547852"
elementos = split(s, " ")
... vai tornar "elementos" em um vetor, contendo: elementos(0) = "Exemplo" elementos(1) = "Dúvida" elementos(2) = "523547852" Se você fizer...
msgbox elementos(0)
msgbox elementos(1)
msgbox elementos(2)

... poderá comprovar isso. Certo? wink.gif

Quanto ao "For Each", vou transcrever aqui uma explicação que fiz para um amigo há um tempo atrás:

"""

O For Each... Next a gente usa quando se quer iterar (percorrer) sobre uma coleção de objetos ou sobre um vetor. O For...Next só itera sobre valores (de 1 até 100, de 20 a 30, 50 a 100, etc.). "For Each" significa "Para cada". Vamos a um exemplo:

for each controle in me.controls

msgbox controle.name

next controle

Com o código acima eu vou percorrer todos os controles do form atual (me). A cada iteração (volta do loop) o objeto "controle" estará referenciando-se a um determinado controle (igual quando você faz "for i=1 to 10", a cada iteração, o "i" vai ter um valor da faixa especificada). No caso acima, será exibida uma caixa de mensagem com o nome do controle. Vamos a outro exemplo, agora com um vetor:

frutas = array("maçã", "pêra", "abacaxi", "limão")

for each fruta in frutas

msgbox fruta

next fruta

O código acima percorre todo o vetor "frutas" mostrando cada um dos nomes. No caso, a variável "fruta", a cada iteração, vai conter um dos nomes. O código acima poderia ser escrito com o For comum também:

for i=0 to ubound(frutas)

msgbox frutas(i)

next i

Mas, compare esse código com o anterior e você verá que o outro é muuuiiitttooo mais claro. No primeiro, literalmente, você pode ler: "PARA CADA FRUTA EM FRUTAS". Já no segundo você está trabalhando com os índices e não diretamente com os objetos (os quais você acessa especificando o índice, como em "msgbox frutas(i)"). Apesar de não aplicável a todos os casos no VB, acho o For Each muito melhor que o For convencional.

"""

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Valeu graymalkin. Agora ficou mais claro.

So uma coisa... No seu exemplo:

for each fruta in frutas

msgbox fruta

next fruta

Essa variavel "fruta" é de q tipo? Declaro como variant tb?

Sim, tem que ser Variant ou Object. Tentar fazer...

Dim fruta As String
For Each fruta In frutas
    Msgbox fruta
Next

... resulta em erro.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...