OOO: Увеличение листов для заполнения вниз

OOO: Увеличение листов для заполнения вниз

У меня есть строка ячеек на "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)и т.д. Первый аргумент — это номер листа относительно текущего, а второй аргумент — ссылка на ячейку.

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