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

VBA - Não consigo referenciar há um Range usando o método Cells - ERRO 400


FresHHerB

Pergunta

Esse primeiro método me da um ERRO 400

    Worksheets("RELAT").Range(Cells(i, 3), Cells(i + 1, 12)).Value = Worksheets(mes).Range("P5:Y6").Value


Esse segundo método funciona normalmente
        

    Worksheets("RELAT").Range("C7:L8").Value = Worksheets(mes).Range("P5:Y6").Value


O Primeiro e o segundo método não são as mesmas coisas ? Oque tem de errado ?

Código completo:

 

    Sub atualizar_Relatorio()
        
        Dim i As Integer
        Dim j As Integer
        Dim mes As String
         
        j = 1
        
        For i = 7 To 30 Step 2
         mes = ActiveSheet.Cells(i, j).Value    'pegando o mês na planilha
         
         MsgBox (mes & " " & i)     'testando o nome do mês na msgbox, código roda normalmente até aqui

    
         Worksheets("RELAT").Range(Cells(i, 3), Cells(i + 1, 12)).Value = Worksheets(mes).Range("P5:Y6").Value   'este não funciona
         Worksheets("RELAT").Range("C7:L8").Value = Worksheets(mes).Range("P5:Y6").Value      'este funciona
    
        Next i
        
        
    End Sub



Resumo do código:
Estou pegando um range (valores) de uma planilha (a qual pego o nome(mes) na planilha "RELAT" usando o for ) e estou copiando os valores desta em outra planilha usando a referência por células, para que eu possa fazer a alteração de linha na planilha "RELAT" para que os dados não sejam substituidos, porém o Excel me mostra um Erro 400


Substitui o for pelo seguinte código, porém queria reduzir usando o for

Código que estou usando e está funcionando:

 

Sub atualizar_Relatorio()
    
    Worksheets("RELATÓRIO").Activate
    

    Worksheets("RELAT").Range("C7:L8").Value = Worksheets("JANEIRO").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C9:L10").Value = Worksheets("FEVEREIRO").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C11:L12").Value = Worksheets("MARÇO").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C13:L14").Value = Worksheets("ABRIL").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C15:L16").Value = Worksheets("MAIO").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C17:L18").Value = Worksheets("JUNHO").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C19:L20").Value = Worksheets("JULHO").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C21:L22").Value = Worksheets("AGOSTO").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C23:L24").Value = Worksheets("SETEMBRO").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C25:L26").Value = Worksheets("OUTUBRO").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C27:L28").Value = Worksheets("NOVEMBRO").Range("P5:Y6").Value
    Worksheets("RELAT").Range("C29:L30").Value = Worksheets("DEZEMBRO").Range("P5:Y6").Value

End Sub

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
6 minutos atrás, Alyson Ronnan Martins disse:

Boa noite @FresHHerB

Também não entendi o motivo mais muda para o seguinte:
 

Sheets("RELAT").Range(Cells(i, 3), Cells(i + 1, 12)).Value = Sheets("mes").Range("P5:Y6").Value

 

não funciona, porque ai ele vai procurar a planilha com o nome mes, e não o conteudo da variável mes (da o erro Subscrito fora de Intervalo)

e no 2o exemplo que usei esta funcionando normal, muito estranho

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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...