Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Resolvendo exercício

Opa,

Compartilhando o primeiro exercício. Se eu precisar fazer várias repetições de um SUB igual fiz no último exemplo, precisaria fazer um a um?

Sub sbMinhaPrimeiraMacro()
    Range("A1") = "Minha Primeira Rotina"
    Range("A2") = Range("C3")
End Sub

Function fnMinhaPrimeiraFunction()
    fnMinhaPrimeiraFunction = "Minha Primeira Função"
End Function

Sub sbMinhaMacro01()
    Range("D8") = Range("A9")
    Range("E8") = Range("A10")
    Range("F8") = Range("A11")
    Range("G8") = Range("A12")
    Range("H8") = Range("A13")
    Range("I8") = Range("A14")
    Range("J8") = Range("A15")
    Range("K8") = Range("A16")
    Range("L8") = Range("A17")
    Range("M8") = Range("A18")
End Sub

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Obrigado

1 resposta
solução!

Olá, Fernando! Como vai?

É possível que o código seja melhorado com o uso de laços de repetição, dessa forma:

Sub sbMinhaMacro01()
    Dim i As Integer
    For i = 9 To 18
        Range("D8").Offset(0, i - 9).Value = Range("A" & i).Value
    Next i
End Sub
  • Dim i As Integer: Declara a variável i como sendo do tipo Integer, essa variável será usada como contadora no laço For.
  • For i = 9 To 18: Inicia um laço de repetição que começa com i = 9 e vai até i = 18, executando o bloco de código para cada valor de i.
  • Range("D8").Offset(0, i - 9).Value = Range("A" & i).Value: Copia o valor da célula A9 até A18 para as células D8 até M8. O trecho Range("D8").Offset(0, i - 9) desloca a célula D8 para a direita conforme o valor de i - 9, atingindo D8, E8, F8... até M8.
  • Next i: Finaliza a repetição atual e passa para o próximo valor de i.

Esse código copia os valores das células A9 até A18 para as células D8 até M8, em uma única linha de código dentro de um laço, evitando repetição manual.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado