Как преобразовать абсолютные ссылки в относительные/косвенные?

Как преобразовать абсолютные ссылки в относительные/косвенные?

Известны ли кому-нибудь методы или макросы, позволяющие преобразовать формулу в косвенную?

Например, все формулы на моем листе в настоящее время записаны так:

=SUM(Sheet2!A1:A10),есть ли способ быстро изменить это на INDIRECTфункцию вроде:

=SUM(INDIRECT("'Sheet2'!"&"A1"):Sheet2!$A$10)

Изменить одну формулу несложно, но для сотен формул, каждая из которых содержит 3-4 ссылки на другие листы, исправление займет очень много времени.

Проблема возникает из-за того, что я суммирую диапазон, однако каждый раз, когда я вставляю новую строку сверху, формула не ссылается на правильные ячейки. Пытаюсь найти способ написать лучшую формулу, чтобы мне не приходилось вручную менять номер строки каждый раз.

решение1

Этот макрос поможет вам найти и заменить формулу на листе.

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

При необходимости вы можете скорректировать ссылки на ячейки в формуле.

Связанный контент