Notifications
Clear all

Localizar e substituir

6 Posts
2 Usuários
0 Reactions
1,187 Visualizações
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Boa tarde
O erro está na macro? na formatação?
Sub localizarSubstituir()
Dim sRange As Range
Dim sValorOrig As Integer
Dim sReplace As Integer
sValorOrig = [F3]
sReplace =
Set sRange = Range("D5:D20")
sRange.Replace What:=sValorOrig, Replacement:=sReplace, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Se em F3, o valor a procurar for 04 e H3 for 50. Em D5:D20, o numero 04 assume o valor 50, o 14, 150 e o 24, 250. Quando deveria ser apenas 50 no lugar do 04.
Considerando que os valores em D5:D20, vai de 01 a 25. Formatei o intervalo D5:D20 e o problema persiste... :roll:

 
Postado : 14/12/2013 1:32 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde,

A variável sValorOrig é inteira (integer) e, portanto converte 04 em 4.
Sugiro alterar o tipo de variável para texto (string):

Sub localizarSubstituir()
    Dim sRange As Range
    Dim sValorOrig As String
    Dim sReplace As String

    sValorOrig = [F3]
    sReplace = [H3]
    Set sRange = Range("D5:D20")
    sRange.Replace What:=sValorOrig, Replacement:=sReplace, LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
End Sub

Abraço

 
Postado : 14/12/2013 1:59 pm
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Grande JValq, Não deu certo não, vide plan. :roll:

 
Postado : 14/12/2013 3:00 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Seria trocar?

LookAt:=xlPart

por

LookAt:=xlWhole

Abs,

 
Postado : 14/12/2013 6:29 pm
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Opa, na mosca, valeu Mandrix.

 
Postado : 14/12/2013 6:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

 
Postado : 14/12/2013 7:45 pm