Мне нужно создать довольно простую таблицу Excel (рабочую книгу). Мне нужно 12 листов (вкладок), по одному на каждый месяц.

Каждый лист ссылается на ячейки предыдущего листа. Например, лист "Май" рисует данные из листа "Апрель", лист "Июнь" будет извлекать данные из листа "Май" и т.д.

Допустим, я создаю первый и второй листы "Апрель" и "Май". Если я скопирую "май" и переименую его в "июнь", все формулы все равно будут ссылаться на "апрель", как на листе "май". Я хотел бы, чтобы вместо этого они автоматически ссылались на "май".

Как это возможно сделать?

1 ответ1

0

Создайте следующий макрос:

Function SHEET_OFFSET(Offset, Ref)
'   Returns cell contents at Ref, in sheet Offset
    Application.Volatile
    With Application.Caller.Parent
        SHEET_OFFSET = .Parent.Sheets(.Index + Offset) _
         .Range(Ref.Address).Value
    End With
End Function

Тогда, если вы хотите, чтобы майский лист получил доступ к April!Q42 , используйте формулу

SHEET_OFFSET(-1, Q42)

Первый аргумент - это номер листа относительно текущего, а второй аргумент - ссылка на ячейку.  Когда вы копируете эту формулу на июньский лист, она автоматически ссылается на майский лист.

Источник: я нашел это на странице электронных таблиц.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .