Hola grupo, especialmente a ti KL que tanto me has ayudado.
Creo saber donde se produce el problema (pero no la solución).
Vuelvo a explicarlo (a ver si esta vez más claramente). Utilizo el
procedimiento que KL me pasó como ejemplo:
Sub Test2()
If ActiveCell.HasFormula Then
ActiveCell.Replace _
What:="CALL(G2,", _
Replacement:="AnguloARadiens(G2,", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End If
End Sub
Estas líneas de código están dentro de un bucle (de 0 hasta 8). Los datos
de búsqueda (de 0 a 8) los tengo en un array y los de reemplazo en otro.
El problema está en que cuando se produce uno de los 8 posibles reemplazos
(la celda aún está sin reemplazar del todo), Excel evalua la formula como
no válida.
Mi código es algo así:
for I = 0 to 8
If ActiveCell.HasFormula Then
ActiveCell.Replace _
What:=ListaBusqueda(I), _
Replacement:=ListaReemplazo(I), _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False
End If
Next I
donde ListaBusqueda(0) = "Funcion1("
donde ListaBusqueda(1) = "Funcion2("
donde ListaBusqueda(2) = "Funcion3("
...
y
ListaReemplazo(0) = "FuncionAntigua1("
ListaReemplazo(1) = "FuncionAntigua2("
ListaReemplazo(2) = "FuncionAntigua3("
..
Así al realizar un reemplazo de la siguiente Celda:
X1 por ejemplo
=FuncionAntigua1(...;FuncionAntigua2(...;FuncionAntigua5(...)
serían necesarios 3 pasos correctos del bucle, cuando terminase el mismo,
la celda quedaría con los valores
=Funcion1(...;Funcion2(...;Funcion5(...), pero no realiza ninguno de los 3
cambios necesarios aunq ListaBusqueda(I) tiene el valor correcto que se
busca (lo he trazado, paso por la línea de replace pero no lo hace).
No se si habrá quedado muy claro. Espero que si. La hoja no la puedo
exponer porque es de un cliente y debería pedirlo permiso, etc etc
Gracias por toda vuestra ayuda. Mikel
Leer las respuestas