Macro para reemplazar solo en el rango de celdas seleccionado

Necesito su ayuda para hacer una macro que me remplace "1=" por "=" pero solo en las celdas seleccionadas.

Range("A7:CC7").Select
Application.CutCopyMode = False
Selection.Replace What:="1=", Replacement:="=", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Nota: con el código actual me reemplaza en todo el libro, no se que código agregar para que solo aplique ese reemplazar al rango seleccionado y solo a la hoja activa

2 respuestas

Respuesta
1

Hola yesica palacios

Intenta:

Range("A7:CC7").Replace What:="1=", Replacement:="=", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

(eliminando la línea «Application.CutCopyMode = False»)

Hola Chaparrito, no me funciona.

Es que si al hacer el reemplazar manual se deja el Excel como "Reemplazar en workbook", entonces cuando la macro se ejecute automáticamente seleccionará la misma opción, lo que tengo que hacer es que al hacer el reemplazar se seleccione la opción "solo en esa hoja" de esa forma solo se reemplaza en el rango. Sabes como coloco eso en el código?

Desgraciadamente no sé como obviar ese inconveniente, pero puedes intentar con:

For Each oRange In ActiveSheet.Range("A7:CC7")
        While InStr(oRange.Value, "1=") > 0
            oRange.Value = Left(oRange.Value, InStr(oRange.Value, "1=") - 1) + _
                           Mid(oRange.Value, InStr(oRange.Value, "1=") + 1)
        Wend
    Next

Es un poco más lento, pero no importa si está activado el «Reemplazar en workbook» y solo funciona en la hoja actual.

¡Gracias! Después de tanto buscar encontré la solución:

Anteponer el siguiente código antes de Replace

Set r = Worksheets(1).Range("A1").Find(What:="This will reset the Find/Replace tool options, including setting Within=Sheet")

Selection.Replace.......

Gracias por la información.

Respuesta
1

Te paso es código.

Ponlo en un módulo, seleccionas las celdas en la hoja activa y ejecutas la macro.

Recuerda valorar la respuesta, Graciass.

Sub Reemplazar()
Selection.Replace What:="1=", Replacement:="="
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas