
¿Existe algún método o macro que alguien conozca que pueda convertir una fórmula en una indirecta?
Por ejemplo, todas las fórmulas de mi hoja actualmente están escritas como:
=SUM(Sheet2!A1:A10),
¿Hay alguna manera de cambiar esto rápidamente a una INDIRECT
función como:
=SUM(INDIRECT("'Sheet2'!"&"A1"):Sheet2!$A$10)
No es difícil cambiarlo para una fórmula, pero para cientos de fórmulas, cada una de las cuales contiene entre 3 y 4 referencias a otras hojas, llevaría mucho tiempo corregirlo.
El problema surge del hecho de que estoy sumando un rango; sin embargo, cada vez que inserto una nueva fila en la parte superior, la fórmula no hace referencia a las celdas correctas. Intento encontrar una manera de escribir una fórmula mejor, para no tener que cambiar manualmente el número de fila cada vez.
Respuesta1
Esta macro le ayudará a buscar y reemplazar fórmulas en la hoja.
Sub FindReplaceFormula()
Cells.Replace What:="=SUM(Sheet2!A1:A10)", Replacement:= _
"=SUM(INDIRECT("'Sheet2'!"&"A1"):Sheet2!$A$10)", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Puede ajustar las referencias de celda en la Fórmula según sea necesario.