none
ASSOCIAR CONTADOR À VARIAVEL RRS feed

  • Pergunta

  • Boa noite, amigos

    tenho tres variaveis:

    fonte1 = "b24"

    fonte2 = "w27"

    fonte3 = "w11"

    e tenho uma função que quero que se repita para cada variavel acima

    range(fonte1).copy

    range(fonte2).copy

    range(fonte3).copy

    Gostaria de inserir um contador que varie i de 1 a 3, repetindo a função:

    for i =1 to 3

    range(fonte & i).copy

    next

    Contudo, quando tento compor a variavel "fonte1", "fonte2", "fonte3" pela junção da palavra "fonte" com o indice i, o programa não entende. 

    Alguem sabe como fazer? ou outras soluções para o problema?

    Obrigado


    • Editado BBRRMM sábado, 2 de maio de 2015 21:01
    sábado, 2 de maio de 2015 20:58

Respostas

  • Por enquanto ainda não vi uma solução prática para o seu problema, mas se for apenas até 3 você pode fazer um if dentro do i, por exemplo:

    for i = 1 to 3

         if (i=1)

              range(fonte1).copy

         elseif (i=2)

              range(fonte2).copy

          else

               range(fonte3).copy

         endif

    next

    Se encontrar outra forma mais prática, respondo novamente neste tópico.

    Edit: Lembrei-me agora que você pode criar um array e fica qualquer coisa como:

    fonte[1] = "b24"

    fonte[2] = "w27"

    fonte[3] = "w11"

    for i =1 to 3

    range(fonte[i]).copy

    next

    • Editado João3135 sábado, 2 de maio de 2015 22:07
    • Marcado como Resposta BBRRMM domingo, 3 de maio de 2015 00:28
    sábado, 2 de maio de 2015 21:47
  • Boa noite.

    O problema no seu código é no range(fonte & i).copy, por que "fonte" é igual a vazio, você não tem nenhum

    dado atribuído para a variável fonte.

    Seguindo a sua lógica fiz o código utilizando vetor.

    Primeiro armazeno os dados no vetores, e no for leio os dados armazenados.

     

    Sub teste()
    
    Dim fonte(3) As String
     
     fonte(0) = "b24"
     fonte(1) = "w30"
     fonte(2) = "w11"
    
    
     For i = 0 To 2
      Range(fonte(i)).Copy
    
     Next
    
    End Sub
    

    Att,

    Thiago

    • Marcado como Resposta BBRRMM domingo, 3 de maio de 2015 00:28
    sábado, 2 de maio de 2015 22:06

Todas as Respostas

  • Por enquanto ainda não vi uma solução prática para o seu problema, mas se for apenas até 3 você pode fazer um if dentro do i, por exemplo:

    for i = 1 to 3

         if (i=1)

              range(fonte1).copy

         elseif (i=2)

              range(fonte2).copy

          else

               range(fonte3).copy

         endif

    next

    Se encontrar outra forma mais prática, respondo novamente neste tópico.

    Edit: Lembrei-me agora que você pode criar um array e fica qualquer coisa como:

    fonte[1] = "b24"

    fonte[2] = "w27"

    fonte[3] = "w11"

    for i =1 to 3

    range(fonte[i]).copy

    next

    • Editado João3135 sábado, 2 de maio de 2015 22:07
    • Marcado como Resposta BBRRMM domingo, 3 de maio de 2015 00:28
    sábado, 2 de maio de 2015 21:47
  • Boa noite.

    O problema no seu código é no range(fonte & i).copy, por que "fonte" é igual a vazio, você não tem nenhum

    dado atribuído para a variável fonte.

    Seguindo a sua lógica fiz o código utilizando vetor.

    Primeiro armazeno os dados no vetores, e no for leio os dados armazenados.

     

    Sub teste()
    
    Dim fonte(3) As String
     
     fonte(0) = "b24"
     fonte(1) = "w30"
     fonte(2) = "w11"
    
    
     For i = 0 To 2
      Range(fonte(i)).Copy
    
     Next
    
    End Sub
    

    Att,

    Thiago

    • Marcado como Resposta BBRRMM domingo, 3 de maio de 2015 00:28
    sábado, 2 de maio de 2015 22:06
  • Senhores, muito obrigado, ambas as soluções funcionaram!

    era isso que estava precisando

    Att,

    Bruno

    domingo, 3 de maio de 2015 00:30