Excel: переносная формула для ссылки на предыдущий (относительный) рабочий лист

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

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

Предположим, я создаю первый и второй листы «Апрель» и «Май». Если я буду копировать «май», и я переименую его «Июнь», все формулы будут по-прежнему относиться к «апрелю», как в майском листе. Я бы хотел, чтобы они автоматически ссылались на «май».

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

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

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 доступ к ячейке April!Q42 , используйте формулу

 SHEET_OFFSET(-1, Q42) 

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

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

  • Форматы дат Excel VBA
  • Как скопировать листы в другую книгу с помощью vba?
  • Код VBA не запускается, когда ячейка изменяется по формуле
  • VBA - ошибка времени выполнения 1004 «Определенная заявка или ошибка с определением объекта»
  • Условное форматирование с использованием кода Excel VBA
  • Отображение миллисекунд в Excel
  • Получить текст из буфера обмена с помощью GetText - избежать ошибки в пустом буфере обмена
  • Как использовать Excel 2010 Personal Macro Workbook?
  • Ошибка времени выполнения «3061». Слишком мало параметров. Ожидаемый 1. (Access 2007)
  • Application.Match дает несоответствие типов
  • Вызов VBA - API отображается в Excel
  • Interesting Posts
    Давайте будем гением компьютера.