![OOO: Увеличение листов для заполнения вниз](https://rvso.com/image/1421887/OOO%3A%20%D0%A3%D0%B2%D0%B5%D0%BB%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BB%D0%B8%D1%81%D1%82%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20%D0%B7%D0%B0%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B2%D0%BD%D0%B8%D0%B7.png)
У меня есть строка ячеек на "sheet1", ссылающаяся на набор ячеек на другом листе. Я хочу заполнить идентичные наборы ячеек, увеличивая только лист.
Другой способ описать проблему: у меня есть главная таблица записей строк, ссылающихся на другие листы, которые являются "формами". Как мне скопировать набор ячеек на листе "формы" в строку ячеек на главном листе?
решение1
Если вы заполните две строки именно так, как хотите, вы, вероятно, сможете выбрать блок, который хотите реплицировать, и использовать маркер заполнения, чтобы перетащить их вниз. Автозаполнение довольно умно, когда вы выбираете две строки и перетаскиваете их. Оно часто определяет, что вы изменили, и просто делает это серией.
Если это не сработает, вы можете вставить названия листов в столбец, а затем использовать КОСВЕННЫЕ ссылки для других формул.
решение2
[Копирование изExcel: переносимая формула для ссылки на данные на соответствующем рабочем листе.]
Создайте следующий макрос:
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
ВидетьКак добавить VBA в MS Office? для получения общей информации об использовании макросов.
Затем, если вы хотите, чтобы ссылки на Листе1 выглядели следующим образом:
A B C
1 =Sheet2!G17 =Sheet2!M42 =Sheet2!Q95 ...
2 =Sheet3!G17 =Sheet3!M42 =Sheet3!Q95 ...
︙ ︙ ︙
установите A1 на SHEET_OFFSET(ROW(), $G$17)
и т.д. Первый аргумент — это номер листа относительно текущего, а второй аргумент — ссылка на ячейку.