beltrao Postado Novembro 20, 2010 Denunciar Share Postado Novembro 20, 2010 Boa noite,Sou novo no forum então saudações a todos! :ninja: Estou com uma duvida,preciso retornar na coluna D o valor que está na coluna B quando a célula em D for igual a 0 (deu pra entender?)só que usando replace da erro de sintaxe quando peço range.offser(0,-2)....como deveria escrever este código para retornar o que eu quero?segue o código abaixo para vocês terem uma idéiaSub Teste_Jabuticaba()'Columns("D:D").Select Selection.Replace What:="0", Replacement:=Range.Offset(0, -2), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=FalseEnd SubEu consegui resolver este problema uisando " for each...in....next", só que dai demora muito pra executar a macro. Sei que deve ser algo bem básico mas eu estou estudando vba a apenas dois dias.Desde já obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 João.Neto Postado Dezembro 7, 2010 Denunciar Share Postado Dezembro 7, 2010 Da forma que você está tentando fazer não é possível.Segue sugestão:Sub Teste_Jabuticaba() Dim rng As Range For Each rng In Columns("D:D").Rows If rng.Cells(1, 1) = "0" Then rng.Cells(1, 1) = rng.Cells(1, 1).Offset(0, -2) End If Next rng End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 João.Neto Postado Dezembro 7, 2010 Denunciar Share Postado Dezembro 7, 2010 Ou, você pode complicar um pouco mais:Sub Teste_Jabuticaba() Dim RngResultado As Range With Columns("D:D") Set RngResultado = .Find(What:="0", LookAt:=xlPart, MatchCase:=False, SearchFormat:=False) If Not RngResultado Is Nothing Then Do RngResultado.Cells(1, 1) = RngResultado.Cells(1, 1).Offset(0, -2) Set RngResultado = .FindNext(RngResultado) Loop While Not RngResultado Is Nothing End If End With End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
beltrao
Boa noite,
Sou novo no forum então saudações a todos! :ninja:
Estou com uma duvida,
preciso retornar na coluna D o valor que está na coluna B quando a célula em D for igual a 0 (deu pra entender?)
só que usando replace da erro de sintaxe quando peço range.offser(0,-2)....
como deveria escrever este código para retornar o que eu quero?
segue o código abaixo para vocês terem uma idéia
Sub Teste_Jabuticaba()
'
Columns("D:D").Select
Selection.Replace What:="0", Replacement:=Range.Offset(0, -2), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Eu consegui resolver este problema uisando " for each...in....next", só que dai demora muito pra executar a macro.
Sei que deve ser algo bem básico mas eu estou estudando vba a apenas dois dias.
Desde já obrigado.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.