none
para usar o comando FOR NEXT no vba excel, é preciso usar o OBJETO Range? RRS feed

  • Pergunta

  • uma vez fui escrever um codigo para ver como esse comando FOR NEXT, funciona na pratica e escrevi este codigo:

    Sub adicao()
    Dim num1, num2, j, x As Integer
        num1 = CInt(InputBox("digite o valor do num1"))
        num2 = CInt(InputBox("digite o valor do num2"))
                x = num1 + num2
            For j = 1 To 5 Step 1
              x = x + j
              Next j
              MsgBox ("valor de x é" & x)
    End Sub

    escrevi este codigo esperando que na caixa de saida fosse aparecer uma serie de numeros todos valores d "x", mas na verdade aparecia apenas um unico valor, e isso que eu não entendi, pensei que apareceria uma serie de valores. Me ajudem ai, desde ja obrigado.

    quinta-feira, 17 de setembro de 2015 21:22

Respostas

  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.

    ---

    Recomendo ler sobre o bloco de código For...Next: http://ambienteoffice.com.br/blog/sintaxe-do-vba/#for...next

    ---

    Dim num1, num2, j, x As Integer

    Na expressão acima, apenas x está declarado como Integer, as outras variáveis estão como Variant. O correto seria:

    Dim num1 As Integer, num2 As Integer, j As Integer, x As Integer

    ---

    Onde você escreveu "caixa de saida" entendo que quis dizer Caixa de Mensagem.

    ---

    Fique atento à indentação do seu código: http://ambienteoffice.com.br/blog/indentacao/

    ---

    Não entendi muito bem o que pretende com o seu código. Experimente isso:

    Sub adicao()
        Dim num1 As Integer
        Dim num2 As Integer
        Dim j As Integer
        Dim x As Integer
        
        num1 = CInt(InputBox("digite o valor do num1"))
        num2 = CInt(InputBox("digite o valor do num2"))
        x = num1 + num2
        
        For j = 1 To x
            MsgBox "valor de j é" & j
        Next j
        
    End Sub



    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    sexta-feira, 18 de setembro de 2015 13:51
    Moderador

Todas as Respostas

  • exatamente... isso porque você não guardou cada resposta dentro do laço:

    Sub adicao()
    
        Dim num1, num2, j, x As Integer
        num1 = CInt(InputBox("digite o valor do num1"))
        num2 = CInt(InputBox("digite o valor do num2"))
        x = num1 + num2
        
        Dim strRespostas As String
        
        For j = 1 To 5 Step 1
            x = x + j
            strRespostas = strRespostas & "valor de x é: " & x & vbNewLine
        Next j
        
        MsgBox strRespostas
        
    End Sub


    Natan

    sexta-feira, 18 de setembro de 2015 09:45
  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.

    ---

    Recomendo ler sobre o bloco de código For...Next: http://ambienteoffice.com.br/blog/sintaxe-do-vba/#for...next

    ---

    Dim num1, num2, j, x As Integer

    Na expressão acima, apenas x está declarado como Integer, as outras variáveis estão como Variant. O correto seria:

    Dim num1 As Integer, num2 As Integer, j As Integer, x As Integer

    ---

    Onde você escreveu "caixa de saida" entendo que quis dizer Caixa de Mensagem.

    ---

    Fique atento à indentação do seu código: http://ambienteoffice.com.br/blog/indentacao/

    ---

    Não entendi muito bem o que pretende com o seu código. Experimente isso:

    Sub adicao()
        Dim num1 As Integer
        Dim num2 As Integer
        Dim j As Integer
        Dim x As Integer
        
        num1 = CInt(InputBox("digite o valor do num1"))
        num2 = CInt(InputBox("digite o valor do num2"))
        x = num1 + num2
        
        For j = 1 To x
            MsgBox "valor de j é" & j
        Next j
        
    End Sub



    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    sexta-feira, 18 de setembro de 2015 13:51
    Moderador